索引基础概念
索引存储格式
每个磁盘块是统一的4K大小
每次搜索的时候都是根据要查找的ID和B树结构最高点的磁盘块所包含的ID做比较.小于磁盘块ID找左边指针指向的磁盘块,介于中间找中间指针指向的磁盘块,大于找右边指针指向的磁盘块
B树结构 (多路平衡查找树)
B+树结构
B树是非叶子节点上也存数据,因为数据的内容大小不固定,数据内容越大.每个磁盘块存储的ID数目越少
B+树是只在叶子节点存数据,非叶子节点只存ID和磁盘指针
普通列建索引回表
普通列建索引查询的时候需要遍历两棵不同的B+树,这个过程叫做回表
索引覆盖
组合索引(最左匹配原则)
多列联合创建索引 哪个列在前哪个列在后。查询效果不同。必须先匹配左边列的值,然后才匹配右边列的值.如果左边列无值,那么右边列的索引也会失效
索引下推
在回表之前对ID的值进行筛选,减少回表次数
name等于zhangsan的有四条记录,默认要回表查询4次,但是索引下推机制在回表查询之前先把age不等于10的先过滤掉,最后只需要回表查询2次即可获取对应的行数据内容
索引维护