首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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.1K130
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    故障分析 | 一条本该记录到慢日志的 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。

    49120

    慢SQL探秘之为什么我的SQL很慢却没记录在慢查询日志里

    min_examined_row_limit: 仅在查询的行数超过指定值时,才记录到慢SQL日志中。默认值为0,表示不限制。 3....扫描记录少于阈值的SQL MySQL中扫描记录少于阈值由min_examined_row_limit参数控制,默认值为0,即如果SQL扫描的行数少于此值时,将不会被记录在慢SQL日志中,否则将会被记录。...如果想忽略扫描数据量较少,但是又不想记录超过阈值的SQL,则可以调整min_examined_row_limit来解决。...6.1 默认情况 测试一下默认情况 mysql> show global variables like 'min_examined_row_limit'; +---------------------...6.2 修改参数 为了测试,此时将min_examined_row_limit值设置为20000000,然后测试是否还会被记录。

    28910
    领券