【问题标题】:What is an orthogonal index?什么是正交索引?
【发布时间】:2010-09-13 02:27:20
【问题描述】:

我负责我们产品的一个表被批评为具有多个正交索引。

什么是正交索引?
为什么不好?
如何避免这种情况?

--更新--
后端数据库引擎在这里不一定相关,因为我们的应用程序与数据库无关。但如果有帮助,Oracle 是一种可能性。

相关表格不用于财务分析。

【问题讨论】:

  • 我怀疑我可以找到第一个问题的答案,但我认为人们需要更多细节来回答后两个问题。例如,哪个数据库引擎?详细信息对于征求好的、有用的答案非常有帮助。
  • 这些数据是否用于像蒙特卡罗模拟这样的投资分析?
  • 你知道我认为这是一个愚蠢的问题,但为什么不问“批评者”他们说“正交索引”时的意思。他们可能没有使用正确的术语,或者他们的意思可能与这里的任何人所熟悉的完全不同。

标签: database-design indexing


【解决方案1】:

正交意味着相互独立。

不知道为什么会不好。事实上,当有一个与主索引无关的常见查询时,我通常使用二级索引(除了 'id' 自增主键)。

【讨论】:

    【解决方案2】:

    正交只是意味着独立,即与主要关注点无关。

    【讨论】:

      【解决方案3】:

      我相信我曾在两个不同的场合听到过“正交索引”这个词,但我不知道这是否是一个公认的词。在这两种情况下,它们都指的是查询优化器不使用的索引,因为:

      • 有一次,它索引了一个完全不相关的列,从未用作搜索条件或排序列;这个词对我来说听起来“古怪”,但我没有反对:)

      • 在另一种情况下,它是一个两列索引,但字段中列的顺序与所需的顺序相反。

      我完全不知道这是否与您的问题有关 :)

      【讨论】:

        【解决方案4】:

        我可能会在这里回答我自己的问题,但请随意加入您自己的想法。

        Javier 的回答 (+1) 让我想到,也许这里的重点是,如果索引中的项目完全不相关,那么拥有多个唯一索引可能是一件坏事。

        换句话说,由于二级索引的唯一性限制,您增加了无法存储真实数据的可能性。它还可能对不一定存在的数据引入人为约束。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-10-13
          • 2011-05-30
          • 2011-07-05
          • 1970-01-01
          • 1970-01-01
          • 2013-11-21
          • 2015-04-25
          相关资源
          最近更新 更多