gpt4 book ai didi

sql-server - SQL Server 中多列非聚集索引中的列顺序重要吗?

转载 作者:行者123 更新时间:2023-12-02 18:56:02 26 4
gpt4 key购买 nike

为 SQL Server 表创建的多列非聚集索引中的列顺序真的很重要吗?

例如是

CREATE NONCLUSTERED INDEX [MultiFieldIndex_1]  
ON [Table_01] ([Column_A],[Column_B],[Column_C],[Column_D])

相同
CREATE NONCLUSTERED INDEX [MultiFieldIndex_1]  
ON [Table_01] ([Column_D],[Column_C],[Column_B],[Column_A])

最佳答案

是的,这很重要!

如果您的查询包含该索引的n 个最左边 列,则可能会使用该索引。

因此,使用您的第一个版本的索引 MultiFieldIndex_1 ,如果您可能会使用

  • 使用全部四列
  • 使用 A、B、C 列
  • 使用 A、B 列
  • 使用 A 列

但如果您使用,它不会永远不会被考虑

  • 仅 D 列
  • C 列和 D 列等等

但是,如果您仅指定 D,则可能会使用索引的第二个版本 ,或DC - 但如果您只指定A,它将永远不会被使用和B

只有当您始终使用索引中定义的所有列时,它们的定义顺序才变得(几乎)无关紧要(仍然存在一些细微差别)至于按最高选择性排序等,但这些远不如以下事实重要得多:如果您不在 SELECT 语句中指定最左边的 n 列,则永远不会使用索引)

关于sql-server - SQL Server 中多列非聚集索引中的列顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475877/

26 4 0
文章推荐: sql-server - 如何确定 SQL Server 是使用默认实例还是命名实例安装的?
文章推荐: spring - 如何在没有spring-boot的情况下使用eureka+feign?
文章推荐: facebook - 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com