问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

索引存储结构的适用范围

发布网友 发布时间:2022-04-25 20:31

我来回答

1个回答

热心网友 时间:2022-05-01 19:08

一、索引定义分类
让我们先来回答几个问题:  
什么是索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
举个例子,索引就像我们查字典时用的按拼音或笔画或偏旁部首
有哪些索引?
从物理结构上可分为两种:聚集索引和非聚集索引 (此外还有空间索引、筛选索引、XML索引)
索引说明 (http:// msdn.microsoft.com/zh-cn/library/ms190197(v=sql.105).aspx)
每张表上最大的聚集索引数为1;
每张表上最大的非聚集索引数为999;
每个索引最多能包含的键列数为16;
索引键记录大小最多为900字节

二、索引数据结构
  在SQL Server数据库中,索引的存储是以B+树(注意和二叉树的区别)结构来存储的,又称索引树,其节点类型为如下两种:
索引节点;
叶子节点
  索引节点按照层级关系,有时又可以分为根节点和中间节点,其本质是一样的,都只包含下一层节点的入口值和入口指针;
  叶子节点就不同了,它包含数据,这个数据可能是表中真实的数据行,也有可能是索引列值和行书签,前者对应于聚集索引,后者对应于非聚集索引。

三、索引存储结构
  在正式讨论索引的存储结构之前,我们有必要先来了解一下SQL Server数据库的存储结构。
  SQL Server数据库存储(结构)的最小单位是页,大小为8K,共8 * 1024 = 8192Byte,不论是数据页还是索引页都是以此方式存放。实际上对于SQL Server数据库而言,其页(Page)类型有很多种,大概有如下十几种
Type 1 – Data page.
Data records in heap
Clustered index leaf-level
Location can be random
Type 2 – Index page
Non-clustered index
Non-leave-level clustered index
Location can be random
Type 3 – Text Mixed Page
Small LOB value(s), multiple types and rows.
Location can be random
Type 4 – Text Page
LOB value from a single column value
Location can be random
Type 7 – Sort Page
Temporary page for sort operation.
Usually tempdb, but can be in user database for online operations.
Location can be random
Type 8 – GAM Page
Global Allocation Map, track allocation of extents.
One bit for each extent, if the bit is 1, means the extent is free, otherwise means the extent is allocated (not necessary full).
The first GAM page in each file is page 2
Type 9 – SGAM Page
Shared Global Allocation Map, track allocation of shared extents
One bit for each extent, if the bit is 1, means the extent is allocated but has free space, otherwise means the extent is full
The first SGAM page in each file is page 3
Type 10 – IAM Page
Index Allocation Map. Extent allocation in a GAM interval for an index or heap table.
Location can be random.
Type 11 – PFS Page
Page Free Space. Byte map, keeps track of free space of pages
The first PFS is page 1 in each file.
Type 13 – Boot Page
Information about the page
Only page 9 in file 1.
Type 14 – Server Configuration Page (It may not be the official name)
Part of information returned from sp_configure.
It only exists in master database, file 1, page 10
SQL Server 2008 Only
Type 15 – File Header Page
Information about the file.
It’s always page 0 every data page.
Type 16 – Differential Changed map
Extents in GAM interval have changed since last full or differential backup
The first Differential Changed Page is page 6 in each file
Type 17 – Bulk Change Map
Extents in GAM interval modified by bulk operations since last backup
The first Bulk Change Map page is page 7 in each file
  表中所有数据页的存放在磁盘上又有两种组织方式:
堆表;
索引组织表
  如果表中所有数据页是以一种页间无序、随机存储的方式,则称这样的表为堆表;
  否则如果表中数据页间按某种方式(如表中某个字段)有序地存储与磁盘上,则称为索引组织表。

四、聚集索引
  下面我们将深入研究一下数据库中的索引到底是如何存储的以及如何被使用的。
  为了测试验证等,我们在数据库PCT上新建一张测试表Employee,有两个字段,其中EmployeeId为主键
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沙尘暴属于自然灾害吗 星配什么字好听男孩 女孩带星字叫什么名字好听又洋气 带星字优美人名 星字如何取名 带星字的名活泼的 非常潮流的星字名 成华区社保局地址 有什么平价又好用的防晒霜值得安利? 有哪些性价比比较高的物理防晒霜可以安利? 唇色深用露华浓不脱色丝絨唇膏哪个色好 唇部干燥起皮,有哪些不会很香的唇膏推荐? Revlon露华浓丽采炫亮唇膏口红好用吗,好不好 兰瑟口红和露华浓口红哪个好,需要你们的建议,谢谢 小蛮A大都推荐的露华浓唇膏,要不要来 露华浓破产后,会带来什么影响,口红也会绝版? 露华浓的口红是什么样的价位? 露华浓的唇膏好用吗? 露华浓超高清HD唇膏怎么样 露华浓唇膏好不好,用过的进 如何迅速杀灭虱子??? 露华浓为申请破产作准备,你用过最好用的口红是哪一个品牌? 敌敌畏涂在头上,杀虱子对人体是否有害 Revlon口红怎么样? 敌敌畏治头上虱子管用不 露华浓唇膏怎么样 小时候用敌敌畏洗头除虱子 会有什么后遗症 使用少量敌敌畏可以杀死虱子吗 露华浓口红怎么样? 有什么办法可以有效杀死虱子? 数据的储存结构主要有哪两种?有什么主要区别 索引和散列结构作为存储结构,它们实际上的存储形态是什么? sql语言 索引是一种存储结构吗 索引干什么的? 华为p30pro相机磨皮怎么关掉? 红米怎么关闭磨皮 vivox21手机怎么取消自动磨皮? oppo+reno+6相机怎样关自动磨皮 OPPOR11前置摄像头为何自动磨皮,能不能关掉 为什么苹果13的微信相机那么磨皮 轻颜换脸在哪里 win7回收站清空的文件要如何恢复? windows7回收站内删除的数据怎么找回 windows7 安装系统后 硬盘数据丢失,该如恢复? 肯德基网上订餐,怎么取餐,是不是要在店里面去取,用什么取,第一次 做外卖员接单去商家取餐,要和商家怎么拿?怎么说? 第一次点外卖,店家有免费配送和支持自取的显示下单过了好久,显示等待自取,意思是要我自己去取啊呜呜呜 外卖骑手不知道店在哪怎么取餐 美团外卖为什么不搞个驿站,让顾客自己去驿站取餐,这样避难骑手知道你地址去报复你? 骑手到店取餐怎么取 全是同行在等 我怎么知道那个餐是我的 怎么看的呀 新手 新手 新手