zoukankan      html  css  js  c++  java
  • mysql explain rows理解

    在MySQL性能调试中,常常使用EXPLAIN解释MySQL执行计划,从而用来估算性能耗时。其中,rows用来表示在SQL执行过程中会被扫描的行数,该数值越大,意味着需要扫描的行数,相应的耗时更长。但是需要注意的是EXPLAIN中输出的rows只是一个估算值,不能完全对其百分之百相信,如EXPLAIN中对LIMITS的支持就比较有限。可以参考文章《MySQL EXPLAIN limits and errors》

     

    另外这个rows在官网的文档中也有解释:
    http://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain_rows

    The rows column indicates the number of rows MySQL believes it must examine to execute the query.

    这个rows就是mysql认为必须要逐行去检查和判断的记录的条数。 
    举个例子来说,假如有一个语句 select * from t where column_a = 1 and column_b = 2;
    全表假设有100条记录,column_a字段有索引(非联合索引),column_b没有索引。
    column_a = 1 的记录有20条, column_a = 1 and column_b = 2 的记录有5条。

    那么最终查询结果应该显示5条记录。 explain结果中的rows应该是20. 因为这20条记录mysql引擎必须逐行检查是否满足where条件。

     

  • 相关阅读:
    特殊json处理
    css3
    居中定位
    微信支付
    vue 封装cookie,请求,登录拦截,接口拦截
    vue中axios的封装(简易版拦截,get,post
    JS的Event Loop
    JS模块化
    JS的排序算法
    时间复杂度 空间复杂度
  • 原文地址:https://www.cnblogs.com/shamo89/p/8335633.html
Copyright © 2011-2022 走看看