我有我的架构的表中有两列的唯一约束:两列上的唯一索引是否意味着每个索引都有索引?
UNIQUE(Column1, Column2)
SQLite的文档告诉我,这creates a unique index on these columns。我的问题是,这是否会在其中一列显式创建索引,如Column1
,是多余的?
我有我的架构的表中有两列的唯一约束:两列上的唯一索引是否意味着每个索引都有索引?
UNIQUE(Column1, Column2)
SQLite的文档告诉我,这creates a unique index on these columns。我的问题是,这是否会在其中一列显式创建索引,如Column1
,是多余的?
是你的例子,不是你的问题。
2列上的复合索引会使第一个上的附加索引变为冗余索引。但是,第二个列的索引可能仍然有用。
但是,如果每一列本身都是独一无二的,则可能不需要复合索引。你可能想看看。
索引太多并不总是一个明显的问题。但浪费资源,特别是为了多余的目的,总是不好的。
任何一个包含多个列的索引也可以作为少数相同列的索引,只要它们是索引开头的所有索引即可。
让我给你举个例子。这些列的索引:
a, b, c, d, e, f
也可以作为一个指标用于以下列组合:
a, b, c, d, e a, b, c, d a, b, c a, b a
因此,对于你的问题:你还可以作为列1指数的指数,但不适用于Column2。