什么是索引
索引是帮助提高查询速度的一种数据结果,就是数据库创建的满足特定查询算法的数据结构,这些数据接口以某种方式指向数据。
索引数据结构
B Tree/B+/B*
B Tree
红黑树也可用来实现索引,但是文件系统及数据库系统普遍采用B/+Tree,为什么?
一般来说,索引本身也很大,不可能全存内存,往往以索引文件的形式存在磁盘
(1)单节点能存储更多数据,使得磁盘IO次数更少。
(2)叶子节点形成有序链表,便于执行范围操作。
(3)聚集索引中,叶子节点的data直接包含数据;非聚集索引中,叶子节点存储数据地址的指针。
索引分类
普通、主键、唯一、联合索引
聚集索引和非聚集索引
聚集索引的叶子节点就是数据节点
非聚集索引的叶子节点是索引节点,但是有一个指针会指向数据节点