v s*_*v s 6 sql-server multiple-columns non-clustered-index
假设我有下表
UserID (身份)PKUserName - 唯一非nullUserEmail - 唯一非null建议什么是最佳性能?
UserName和UserEmail单独创建非聚集索引要么
请分享你为什么一个人优于其他人的想法.
mar*_*c_s 13
另一个需要考虑的重点是:只有在引用了n个最左边的列时才会使用复合索引(由多个列组成)(例如在WHERE子句中).
所以如果你有一个复合索引
(UserID, UserName, UserEmail)
Run Code Online (Sandbox Code Playgroud)
那么这个索引可能会在以下场景中使用:
UserID单独搜索时(仅使用最左边的1列 - UserID)UserID和UserName(使用2个最左边的列)但是这个单一的复合索引永远不能用于搜索
UserName- 它是索引中的第二列,因此不能使用此索引UserEmail- 它是索引中的第三列,因此不能使用此索引请记住这一点 - 仅仅因为列是索引中的一部分并不一定意味着单独搜索该单个列将被该索引支持并加速!
因此,如果您的使用模式和您的应用程序确实需要搜索UserName和/或UserEmail单独搜索(不提供其他搜索值),那么您必须在这些列上创建单独的索引 - 只需一个化合物就不会有任何好处.
| 归档时间: |
|
| 查看次数: |
7935 次 |
| 最近记录: |