是否在列上添加索引?

时间:2009-08-23 08:13:32

标签: mysql innodb

我的桌子看起来像这样:

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。

1 个答案:

答案 0 :(得分:6)

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

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

答案是顺便说一下:“它应该,除非你的DBMS确实是脑死亡的”。通常,添加索引会提高选择速度,但会降低插入和更新速度。但我意味着“一般” - 情况并非总是如此。一个好的DBA会不断检查DBMS的性能并在必要时进行调整。数据库不是一劳永逸的对象,它们需要得到照顾和培养: - )

相关问题