【2019秋冬】【MySQL】MySQL技术内幕 第五章 索引

本文深入探讨InnoDB存储引擎的三种常见索引:B+树、全文索引和哈希索引。重点讲解B+树索引的工作原理,包括聚集索引、辅助索引的概念,以及如何通过B+树实现高效的数据检索。同时,文章还介绍了哈希索引的特点及应用,为读者提供全面的数据库索引知识。
摘要由CSDN通过智能技术生成

InnoDB存储引擎有三种常见索引
1.B+树
2.全文索引
3.哈希索引

哈希索引是自适应的,会根据表的情况制动生成表成为哈希索引,无法人为干预

B+是最常见的
B+树是为磁盘或其他存储辅助设备设计的一种平衡查找树

索引中的B+树分为聚集索引和辅助索引
聚集索引:按照每张表的主键构造B+树,叶子节点存放整张表的行记录数据(数据页),每张表只有一个聚集索引
数据页存放的是行数据,索引页存放的是键值以及偏移量
辅助索引:叶子索引不包含行数据,而是包含书签,指向对应的聚集索引,一个表可以有多个辅助索引

B+树索引插入
1.随机插入,取页中间的记录点做分裂点
2.同方向插入,若往同一方向插入5个,并且在当前定位之后还有3个,则分裂点为定位之后的第三条,不是3个就将当前定位点计做分裂点

Cardinality值
高访问性:基本不重复(不大众,不至于一搜索出来很多相似结果)
高访问性的使用B+树索引更有意义
Cardinality值表示索引中不重复记录数量的预估值,越接近1越好
InnoDB存储引擎在统计Cardinality值时是在存储引擎层采样统计(频繁统计不方便),当表中1/16的数据发生变化,或stat_modified_counter值大于20亿时进行更新
统计Cardinality值方法:
获取B+树中叶子节点数量A;随机抽取8个,分别统计所需记录个数Pi;
最后(P1 + P2 ……+ P8) *A / 8

B+树索引的应用
1.联合索引
对表上的多个列进行索引,键值大于等于2个
2.覆盖索引
在辅助索引上可以查到的记录不需要再访问聚集索引

哈希算法
InnoDB也可以使用哈希算法进行字典查找,所模的值大小为大于缓冲池页数量二倍的质数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值