Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server索引的工作原理_Sql Server_Indexing - Fatal编程技术网

Sql server SQL Server索引的工作原理

Sql server SQL Server索引的工作原理,sql-server,indexing,Sql Server,Indexing,SQLServer使用带有中间节点和叶节点的二叉树进行搜索,但它将如何做到这一点。例如,如果一个表雇员有两个字段 Id bigint Name varchar(50) 具有以下值: Id Name 1 Ashish 2 Amit 3 Bhavin 4 Dinesh 如果我们在这两列上都创建了复合非聚集索引,名

SQLServer使用带有中间节点和叶节点的二叉树进行搜索,但它将如何做到这一点。例如,如果一个表雇员有两个字段

Id bigint 
Name varchar(50) 
具有以下值:

Id                  Name
1                   Ashish
2                   Amit 
3                   Bhavin
4                   Dinesh 
如果我们在这两列上都创建了复合非聚集索引,名称为first,后面是Id,那么我们就不知道它是如何工作的。中间节点是否包含1)A-F 2)G-M。。。或者别的什么。此外,一旦在二进制中搜索名称,则在该树具有id之后,就有了中间节点


简而言之,SQL server在这种情况下是如何搜索的?

它是如何工作的

数据库获取CREATEINDEX命令中指定的列,并将值排序到称为B树的特殊数据结构中。B树结构支持以最少的磁盘读取量进行快速搜索,允许数据库引擎快速找到我们正在使用的查询的起始点和停止点



有关更多信息,请查看

此问题是一个概念性问题,需要非常直接的答案 您可以阅读本文以获得简短的答案:


B+树是“平衡的”而不是“二进制的”,谢谢你的回答,但如果目标站点无法访问或永久脱机,在你的回答中引用文章中有用的内容,它将受益匪浅。