用两列创建索引和在两列上创建单独索引有什么区别?
两者之间的区别
create nonclustered index ix_index1 on table1(col1)
create nonclustered index ix_index2 on table1(col2)
和
create nonclustered index ix_index1 on table1(col1, col2)
如果您有任何col2
单独选择的查询,则可能会有所不同。
SELECT (list of columns)
FROM dbo.YourTable
WHERE col2 = 'someValue'
如果您有两个单独的索引,则有ix_index2
可能被用来加快此查询的速度。
但是,如果您在上只有一个复合索引(col1, col2)
,则该索引永远不能用于此查询。只有在查询中引用了最左边的n列时,才可以使用复合索引。
所以您的复合索引可能会被使用
col1
和col2
在WHERE
子句中col1
在WHERE
子句中使用但是如果您的查询仅在子句中使用,则永远不能使用它col2
WHERE
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句