开发者社区> 问答> 正文

mysql中explain执行结果中的rows统计原理是什么?

在为表创建索引的过程中,发现当在一个现有的索引最右添加一列后,按照筛选条件看,能缩小查询的范围。然后从explain执行后结果发现,其实扫描的rows有时候反而比加上新的一列后会增多。而某些情况下,rows的大小并不是和最后的查询时间成反比。

展开
收起
落地花开啦 2016-01-31 09:53:47 4727 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    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条件。

    2019-07-17 18:36:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像