mysql 表信息 rows_mysql中explain执行结果中的rows究竟是怎么个统计原理呢?

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.4fe8b7f067a506dc6672899e5e86fdba.png

a5b4f37188fe4d60518f7b9e1939e28e.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值