将近2000万的一张表,用主键做范围查询耗时很长,几分钟。
表结构如下
CREATE TABLE `test` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`city` varchar(6) CHARACTER SET utf8 NOT NULL COMMENT 'city',
`addtime` int(12) NOT NULL DEFAULT '0' COMMENT 'addtime',
PRIMARY KEY (`id`),
) ENGINE=MyISAM AUTO_INCREMENT=186400 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;id是自增主键,可是以下SQL语句查询却非常慢。select * from test where id >500;explain发现,几乎要全表扫描了,附加信息是 Using index condition;Using MRR为什么会这么慢呢,
表结构如下
CREATE TABLE `test` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`city` varchar(6) CHARACTER SET utf8 NOT NULL COMMENT 'city',
`addtime` int(12) NOT NULL DEFAULT '0' COMMENT 'addtime',
PRIMARY KEY (`id`),
) ENGINE=MyISAM AUTO_INCREMENT=186400 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;id是自增主键,可是以下SQL语句查询却非常慢。select * from test where id >500;explain发现,几乎要全表扫描了,附加信息是 Using index condition;Using MRR为什么会这么慢呢,
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货