我们有一个表,比如说,5 个索引(一个集群)。
问题:如果所有 5 个索引都以相同的确切字段开头,它是否会对优化器的性能产生负面影响——无论是速度还是索引选择的准确性?(所有其他条件相同)。
公司有人建议它可能对性能产生不利影响,因此需要对其中一个指数进行前两个字段的切换。
如果没有必要,我宁愿避免改变,因为他们没有用任何事实/推理来支持他们的断言,但是这个人足够资深和聪明,我倾向于认真考虑他的建议。
注意1:基本答案“为where子句和整体查询定制索引”对我没有帮助 - 将更改的索引是使用它的唯一查询的覆盖索引,因此其中字段的顺序将不影响IO量。我问了一个单独的 SO 问题只是为了确认这一断言。
注意 2:该字段是插入记录的日期,如果这很重要,表很大。它有大约 100 天的数据,每个日期的行数大约相等,第一个索引是从该日期字段开始的聚集索引。