mysql优化 - mysql中explain执行结果中的rows究竟是怎么个统计原理呢?
高洛峰
高洛峰 2017-04-17 13:53:25
[MySQL讨论组]

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

2.比如我的表结构如下:

CREATE TABLE `test` (
  `flag` tinyint(4) NOT NULL DEFAULT '0',
  `type` smallint(6) NOT NULL DEFAULT '0',
  `poid` int(11) NOT NULL DEFAULT '0',
  `new_nums` int(11) NOT NULL DEFAULT '0',
  `addup_nums` int(11) NOT NULL DEFAULT '0',
  `r_time` int(11) NOT NULL DEFAULT '0',
  `event_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `dtype` tinyint(6) NOT NULL DEFAULT '1' COMMENT '1.day 2.week 3.month',
  `dtime` char(10) NOT NULL DEFAULT '',
  KEY `one` (`dtime`,`r_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

当我试图在索引one的最后添加一列poid后,我发现,explain执行后的rows反而增多了。

3.

所以,rows究竟是怎么计算出来的呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号