Mysql索引主键和非唯一索引之间的索引性能

时间:2013-04-22 14:40:27

标签: mysql performance

我有一个大表(1亿条目),有三列(id1, id2, id3)

所有列均为int(11)

id1是主键。因此,它上面有一个默认的唯一索引。

我还在id2上创建了一个索引。但是id2的值并不是唯一的。大约有500,000个唯一条目。

现在,当我有以下查询时:

select count(*) from table where id2 < 100.000

查询结果大约为400万,持续时间为40秒(获取时间为0)。

当我有以下查询时

select count(*) from table where id1 < 4.000.000

查询的结果再次是4百万,但持续时间约为6秒。

如果我按以下方式进行查询

select * from table where id2 < 100.000

select * from table where id1 < 4.000.000

性能差异的比例变得更糟。

这种性能差异的原因可能是什么。两个索引的属性(据我从SHOW INDEX命令中学习)是相同的(例如两者都是b树索引),除了(如上所述)其中一个是主键和另一个索引是一个非唯一的索引。

由于 艾哈迈德

0 个答案:

没有答案