我有一张看起来像这样的桌子:
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。
我知道答案,但没关系。在所有潜在的数据库优化情况下,您应该做的是添加索引并对其进行测试。而且,我的意思是测试所有受影响的查询、插入和更新,以确保您的性能提升超过其他地方的任何性能损失。
如果替代方案是您可以自己收集的具体数据,您不应该相信我或其他任何人的知识。测量,不要猜测!
顺便说一句,答案是:“它应该,除非你的 DBMS 真的是脑死亡”。通常,添加索引会提高选择的速度,但会减慢插入和更新的速度。但我的意思是“一般”——并非总是如此。优秀的 DBA 会不断检查 DBMS 的性能并在必要时对其进行调整。数据库不是一劳永逸的对象,它们需要被照顾和培育:-)