a) 什么是索引
在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,与书中的索引一样,数据库中的索引使您可以快速找到表中的特定信息。索引包含从表中一个或多个列生成的键,以及映射到指定数据的存储位置的指针,也就是说索引由键 和 指针组成。它是用于提高数据库表数据访问速度的数据库对象。
b) 建立索引的好处:
1. 索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。
2. 对于非聚集索引,有些查询甚至可以不访问数据页。如字典的目录就可以查到所有拼音第一字母为z 的所有字。
3. 聚集索引可以避免数据插入操作集中于表的最后一个数据页。
4. 一些情况下,索引还可用于避免排序操作。
c) 索引的存储
索引包含由表中的一列或多列生成的键。这些键存储在一个结构(B 树)中,不同于二叉树。同一个分支下有一个或多个子节点。
B树的简单结构:
(从图可见,当我们插入关键字4时,由于原结点已经满了,故进行分裂,基本按一半的原则进行分裂,然后取出中间的关键字2,升级(这里是成为根结点)。其它的依类推,就是这样一个大概的过程。)
一条索引记录中包含的基本信息包括:键值 + 逻辑指针。