sql-server - 为什么聚集索引中叶子节点相互连接?

标签 sql-server

众所周知,当创建聚集索引时,索引键数据存储在B树结构中。B树的底层是叶子节点,其中包含表的实际数据行,并且所有叶节点都指向 下一个和上一个叶子节点。我想知道使用双链表连接叶子节点的目的。 如果您能回答我的问题,我将不胜感激

最佳答案

I want to know the purpose of using double linked list to connect leaf nodes.

这是在进行范围查询时获取向前或向后排序的数据的有效方法。

例如:

select ID
from YourTable
where ID between 10 and 20
order by ID desc

通过 ID 上的索引,上述查询可以在 20 上进行索引查找,并将索引向后扫描到 ID = 10,返回找到的所有行。

关于sql-server - 为什么聚集索引中叶子节点相互连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959163/

相关文章:

c# - 为什么我们需要创建存储过程来进行备份?

SQL 服务器表

c# - C#如何在 Crystal 报表的一行中添加一个单词

sql-server - 将 SQL "Not In"更改为 "Left Outer Join"

sql - 从表中获取历史数据

sql-server - 在文本列中搜索字符串并列出计数

sql-server - 每年获取库存余额

sql - 找出谁在从存储过程中执行该存储过程

sql - T-SQL - 将数据插入父表和子表

sql - 检查查询的执行时间精确到微秒