索引概述:
定义:索引(index)是帮助mysql高效获取数据的数据结构(有序)。
解释:在mysql中,除数据之外,数据库同还维护满足【特定查找算法】的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在数据结构上实现高级查找算法,这种数据结构就是索引。
如下图所示:
左边是数据表,一共2列7条数据,最左边的是数据记录的物理地址(注意:逻辑上相邻的记录,在磁盘上并不一定是物理相邻的)。
为了加快Col2的查找,可以维护一个右边所示的`二叉查找树`:
- 每个节点分别包含:索引键值 && 物理指针(指向对应数据记录的物理地址)
- 利用该二叉树,就可以快速获取到相应数据。
一般来说,索引本身也很大,不可能全部存储在内存中,往往以索引文件的形式,存储在磁盘上;索引是数据库中,提高性能的最常用的工具。