1

我有一张看起来像这样的桌子:

CREATE TABLE `item` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255),
`my_number` int(10) unsigned default NULL
);

有数十万件商品,我通常按“my_number”订购。

当我按此字段排序时,在“my_number”上添加索引会提高查询性能吗?

我使用 MySQL,表是 InnoDB。

4

1 回答 1

6

我知道答案,但没关系。在所有潜在的数据库优化情况下,您应该做的是添加索引并对其进行测试。而且,我的意思是测试所有受影响的查询、插入和更新,以确保您的性能提升超过其他地方的任何性能损失。

如果替代方案是您可以自己收集的具体数据,您不应该相信我或其他任何人的知识。测量,不要猜测!

顺便说一句,答案是:“它应该,除非你的 DBMS 真的是脑死亡”。通常,添加索引会提高选择的速度,但会减慢插入和更新的速度。但我的意思是“一般”——并非总是如此。优秀的 DBA 会不断检查 DBMS 的性能并在必要时对其进行调整。数据库不是一劳永逸的对象,它们需要被照顾和培育:-)

于 2009-08-23T08:15:48.293 回答