代码之家  ›  专栏  ›  技术社区  ›  Nathan Wailes

如果第二列对于第一列中的每个条目总是只有几个条目长,那么多列索引通常值得吗?

  •  0
  • Nathan Wailes  · 技术社区  · 6 年前

    如果我在一个表中有两列,并且我计划对这两列进行大量的查询(这通常会建议创建一个多列索引),但是我也知道第一列中的每个唯一值在第二列中只有大约3到5个值,多列索引与只在第一列上有一个索引相比还值得吗?假设我不关心创建索引的成本,我只关心多列索引将在多大程度上提高查询速度,而不是仅仅为第一列创建索引。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gordon Linoff    6 年前

    where 子句(假设您的查询引用 哪里 条款)。

    一般来说,答案是肯定的。考虑如下数据:

    x     y       datapage
    a     1       datapage_1
    a     2       datapage_2
    a     3       datapage_3
    b     1       datapage_4
    . . . 
    

    如果您的查询是:

    select x, y
    from t
    where x = 'a' and y = 2;
    

    仅启用索引 x y 价值观。

    y