【问题标题】:Does a unique-index on two columns imply an index on each of them?两列上的唯一索引是否意味着每列都有一个索引?
【发布时间】:2010-07-01 10:56:40
【问题描述】:

我的架构中有一个表,它对两列具有唯一约束:

UNIQUE(Column1, Column2)

SQlite 文档告诉我这个creates a unique index on these columns。我的问题是,这是否会在其中一个列上显式创建索引,比如Column1,是多余的吗?

【问题讨论】:

    标签: sql sqlite indexing


    【解决方案1】:

    对你的例子是,对你的问题不是。

    2 列上的复合索引会使 第一个 上的附加索引变得多余。但是,second 列上的索引可能仍然有用。

    但是,如果每一列本身都是唯一的,那么您可能不需要复合索引。你可能想调查一下。

    索引过多并不总是一个明显的问题。但是浪费资源,尤其是为了多余的目的,总是不好的。

    【讨论】:

      【解决方案2】:

      任何一个包含多个列的索引也可以用作较少相同列的索引,只要它们都是索引开头的列。

      让我举个例子。这些列的索引:

      a, b, c, d, e, f

      也可以作为以下列组合的索引:

      a, b, c, d, e A B C D 甲,乙,丙 一,乙 一个

      所以对于您的问题:您拥有的索引也可以用作 Column1 的索引,但不能用作 Column2 的索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2015-06-21
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多