Index的“最左前缀规则”是否适用于SQL Server?

Dri*_*100 2 sql sql-server

在 MySQL 中,最左边的前缀适用于多列索引的情况,在


假设索引由 (col1, col2, col3) 组成。符合索引搜索条件的组合:

  • (col1)
  • (col1, col2)
  • (col1, col2, col3)

不符合索引搜索条件的组合:

  • (col2)
  • (col2, col3)
  • (col3)

SQL Server 是否也对索引查找机制使用相同的规则?有官方文档可以参考吗?我试过四处搜索,但没有运气:(提前谢谢大家!

Gor*_*off 6

该规则基本上是扫描 b 树索引的规则。

也就是说,有一种替代扫描方法,Oracle 称之为“跳过扫描”。这允许扫描不在索引最左边的键上的索引。一些数据库或多或少地实现了这一点。 是对该主题的一个很好的介绍。我不相信 SQL Server 实现跳过扫描。

尽管跳过扫描功能强大,但它们的效用取决于索引中第一个键的基数。如果第一个键具有高基数,则它们不是很有效。

  • 恭喜1MM!!!希望我亲眼目睹了这一重大事件。 (2认同)