SQL Server 中多列索引的结构

Nin*_*shu 2 sql-server indexing b-tree physical-design

我在哪里可以找到关于数据如何存储在页面中以及如何为多列索引构建 B 树(特别是 SQL Server,但不一定)的良好表示?

我指的是类似您在https://learn.microsoft.com/en-us/sql/relational-databases/reading-pages?view=sql-server-ver15(针对单列)中看到的内容,但扩展为多列。

单列索引的另一个例子: 在此输入图像描述

谢谢。

小智 5

我发现这个例子非常有用,希望您正在寻找这样的东西。它还显示包含列(特定于 SQL-Server)。如果您不需要包含列,只需在叶节点中获取不包含“年龄”和“性别”的所有内容即可。原始文章中有一个很好的解释(我希望您可能不需要)。

在此输入图像描述

参考 - https://www.malinga.me/index-physical-struct-example-multi-column-non-clustered-index-with-includes/

  • 请注意,这是针对(名字,姓氏)的唯一索引。对于非唯一索引,聚集索引键列被添加为索引键列,因为可能有数百个页面充满不同的“('Kirstie', 'Southern')”。 (3认同)