我的产品责任范围内的一张表被批评为具有多个正交索引。
什么是正交索引?
为什么不好?
如何避免这种情况?
--Update--
后端数据库引擎在这里不一定相关,因为我们的应用程序与数据库无关。但如果它有帮助,甲骨文是一种可能性。
有问题的表格不用于财务分析。
我的产品责任范围内的一张表被批评为具有多个正交索引。
什么是正交索引?
为什么不好?
如何避免这种情况?
--Update--
后端数据库引擎在这里不一定相关,因为我们的应用程序与数据库无关。但如果它有帮助,甲骨文是一种可能性。
有问题的表格不用于财务分析。
正交意味着彼此独立。
不知道为什么会不好。事实上,当有一个与主查询无关的常见查询时,我通常使用二级索引(除了“id”自动增量主键)。
我相信我在两个不同的场合听说过“正交索引”这个词,但我不知道这是否是一个公认的术语。在这两种情况下,它们都指的是查询优化器不使用的索引,因为:
有一次,它索引了一个完全不相关的列,从未用作搜索条件或排序列;这个词对我来说听起来“古怪”,但我没有反对:)
在另一种情况下,它是一个两列索引,但字段中列的顺序与所需的顺序相反。
我完全不知道这是否与您的问题有关:)
我可能会在这里回答我自己的问题,但请随意加入你自己的想法。
Javier 的回答 (+1) 让我开始认为,如果该索引中的项目完全不相关,那么拥有多个唯一索引可能是一件坏事。
换句话说,由于二级索引的唯一性约束,您增加了无法存储真实数据的机会。它还可能对不一定存在的数据引入人为约束。
正交只是意味着独立,即与主要关注点无关。