MySQL的索引结构
目录 索引是什么? 索引的作用 为什么索引的数据结构使用B+Tree? 平衡二叉查找树 多路平衡查找树 B-Tree 多路平衡查找树加强版 B+Tree B+Tree与B-Tree的区别 MySQL中B+Tree的表现形式 MyISAM引擎 InnoDB引擎 覆盖索引 联合索引 最左前缀原则 索引是什么? 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 索引的作用 索引能极大的减少存储引擎需要扫描的数据量。 索引可以把随机IO变成顺序IO。 索引可以帮助我们在进行分组、排序等操作时,避免使用临时表。 为什么索引的数据结构使用B+Tree? 平衡二叉查找树 缺点: 太高:树的高(深)度决定着它的IO操作次数。显然,当数据量逐渐增加时,平衡二叉树的深度也会显著增加。 太小:每一个节点保存的数据量太小了。没有很好的利用操作磁盘IO的数据交换特性,也没有利用好磁盘IO的预读能力(空间局部性原理),从而带来频繁的IO操作。 多路平衡查找树 B-Tree 查询的效率取决于与磁盘IO的次数,减少磁盘IO的次数就必须要压缩树的高度,B-Tree 很好的解决了平衡二叉树的小与高的问题,让瘦高的树尽量变成矮胖的树。 多路平衡查找树加强版 B+Tree B+Tree与B-Tree的区别 B+Tree节点关键字搜索采用闭合区间。 B