我正在检查并删除 SQL 数据库中的重复和冗余索引。
所以如果我有两个相同的索引,我会删除。
例如,如果我删除了重叠的索引...
我删除索引 1。
相同顺序但有额外字段的索引呢?
我可以安全地删除索引 1 吗?
我的猜测是否定的,但我不确定
最佳答案
好吧,当然你可以放弃它;你似乎有权限。但是,索引并不等效。
例如,第一个将优化此查询:
where brand = @brand and model = @model
第二个将能够使用索引,但不是最佳的,因为它不能直接寻找到正确的行。引擎需要扫描所有
@brand
索引中的记录以查找匹配的模型。因为这可以在索引本身中完成,所以应该有很好的性能。这对您的查询是否重要取决于查询的性质,但索引不是多余的。
顺便说一下,我认为 MySQL documentation很好地解释了如何使用复合索引(不同的数据库在索引使用上并不完全相同,但它们非常相似)。
关于SQL 索引 - 这是重叠的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604471/