首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL案例:一个有趣的慢查询问题分析

    存储ASH和历史执行计划等信息,因此没有办法直接定位,但我们可以通过其它方式来排查;这里需要我们了解以下几个知识点(在问题排查中,有些知识点也是有些模糊,后面会通过实验进行验证): 慢日志的Rows_examined...场景模拟 刚刚有提到几个知识点,其实在排查过程中也是有一些模糊,接下来我们通过实验验证下 (1)慢日志的Rows_examined:执行该SQL,实际扫描的行数,真实值 (2)慢日志的Rows_sent...(1)sbtest9记录数为1000000,更新所有行记录,Rows_examined为1000000 # Time: 2021-02-24T09:37:49.542262+08:00 # User@...: 999999 SET timestamp=1614132111; update sbtest9 set k=100; 可以多测试几次,结果都是一样的,Rows_examined记录的是真实值,而不是预估值...关于涉及的知识点,总结如下: (1)慢日志的Rows_examined:执行该SQL,实际扫描的行数,真实值; (2)慢日志的Rows_sent:执行该SQL,实际返回的行数,真实值;对于insert/

    3.5K130

    故障分析 | 一条本该记录到慢日志的 SQL 是如何被漏掉的

    () >= thd->variables.min_examined_row_limit);  // The docs say slow queries must be counted even when...也就是说这条 SQL 检索的行数为 0 行,小于当前设置的 min_examined_row_limit 参数值 100,所以这条 SQL 没有记录到慢查询日志中。...()   //打印thd->get_examined_row_count()当前返回值$4 = 0(gdb) p thd->variables.min_examined_row_limit //打印min_examined_row_limit...因此,把 min_examined_row_limit 参数设置为 0 后,再次执行 select count(*),可以看到在慢查询日志中,这条 SQL 执行完成后就被记录了。...所以要想把慢的 select count(*) 记录到慢查询日志中,min_examined_row_limit 这个参数必须保持为默认值 0。

    72320

    MySQL日志之慢查询日志Slow Log

    general log不同)记录内容: 执行时间超过阈值的SQL执行参数(时间、锁时间、返回行数等)用户和连接信息触发条件:满足以下任一条件 执行时间 > long_query_time未使用索引且min_examined_row_limit...1slow_query_log_file = /var/log/mysql/mysql-slow.loglong_query_time = 1log_queries_not_using_indexes = 1min_examined_row_limit...log_slow_extra 用于控制是否在慢查询日志中记录额外的执行统计信息 参数类型为布尔型 默认值是 OFF 功能作用: 当启用时,慢查询日志会额外记录以下重要信息:查询使用的线程ID查询检查的行数(rows_examined...Host: root[root] @ localhost [] Id: 123# Query_time: 2.345678 Lock_time: 0.000123 Rows_sent: 1 Rows_examined...关键字段说明Query_time:SQL执行总时间(秒)Lock_time:等待锁的时间(秒)Rows_sent:返回给客户端的行数Rows_examined:服务器检查的行数八、分析工具推荐1. mysqldumpslow

    1.1K00
    领券