mysql limit缺陷_mysql中使用limit时,explain带来的问题分析

问题分析:

1,explain当估计行数时,不考虑limit,因此可能会对查询估计过多的检查行数。

2,类似于SELECT ... FROM TBL LIMIT N这样的全表扫描的查询因为用不到索引将要报告为慢查询,如果--log-queries-not-using-indexes被开启的话;

可以在配置文件中使用min-examined-row-limit=Num of Rows来设置,如果要检查的行数大于等于这个量的查询,才会被报告为慢查询。

有关mysql慢查询的内容,可以参考:mysql打开慢查询日志的方法

有关 mysql 慢查询日志

mysql开启慢查询实例演练(图文)

mysql开启慢查询日志的方法

MySQL 5.1.6以上版本动态开启慢查询日志的方法

mysql 慢查询的原因分析点滴

学习开启mysql慢查询与分析查询语句

mysql开启慢查询以检查查询慢的语句

3,类似于这样形式的SELECT ... FROM TBL WHERE KEY_PART1=CONST ORDER BY KEY_PART2 LIMIT N,mysql也要估计出过多的检查行数。

有关slow-query的一些参数:

log-slow-queries -- 开启慢查询

long_query_time=N -- 大于N秒的查询为慢查询,并且要满足min-examined-row-limit的要求

log-queries-not-using-indexes  -- 记录不使用索引的为慢查询,并且要满足min-examined-row-limit的要求

min-examined-row-limit=N -- 要检查的行数大于等于N时才记录为慢查询,前提是必须满足long_query_time和log-queries-not-using-indexes约束

就介绍这些吧,希望对大家有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值