SQL 服务器中多列索引的结构

Structure of a Multi-column index in SQL server

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

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

单列索引的另一个例子:

谢谢。

索引键值首先按第一个键列排序,然后按第二个键列排序,然后yt完全相同,除了在非叶节点上增加了列。因此,如果第一个键列是数字,第二个键列是动物的名称,则非叶页的范围可能如下:

                                     (1,'cat')-(1000,'horse')
                                              ^
                  (1,'cat')-(500,'snake')               (500,'tiger')-(1000,'horse') 
                           ^                                         ^
(1,'cat')-(250,'elephant')   (250,'fox')-(500,'snake')          . . .

我发现这个例子非常有用,希望你正在寻找这样的东西。它还显示包括列(SQL-特定于服务器)。如果您不需要 include-columns,只需在叶节点中获取没有 'age' 和 'sex' 的所有内容。原文有很好的解释(希望大家不需要)

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