什么是正交索引?
时间:2020-03-06 14:43:17 来源:igfitidea点击:
我的产品责任范围内的一张表被批评为具有多个正交索引。
什么是正交索引?
为什么不好?
如何避免这种情况?
- 更新-
后端数据库引擎在这里不一定相关,因为我们的应用程序与数据库无关。但是,如果有帮助,Oracle是一种可能。
该表未用于财务分析。
解决方案
正交仅表示独立,即与主要关注点无关。
我相信我已经在两个不同的场合听到过"正交索引"一词,但是我不知道这是否是一个公认的术语。在这两种情况下,它们都引用查询优化器不使用的索引,因为:
- 有一次,它索引了一个完全不相关的列,从未将其用作搜索条件或者排序列;这个词对我来说听起来有些"古怪",但我并不反对:)
- 在另一种情况下,它是两列索引,但是字段中列的顺序与所需顺序相反。
我绝对不知道这是否与问题有关:)
正交表示彼此独立。
不知道为什么会这样。实际上,当存在与主查询无关的通用查询时,我通常使用辅助索引(" id"自动递增主键除外)。
我可能会在这里回答我自己的问题,但请随时随我们所想。
哈维尔(+1)的答案使我继续思考,也许这里的意思是,如果该索引中的项目完全不相关,那么拥有多个唯一索引可能是一件坏事。
换句话说,由于二级索引的唯一性约束,我们正在增加无法存储真实数据的机会。这也可能会对不必要存在的数据施加人为约束。