mysql底层原理
1、索引底层数据结构B+Tree详解
索引的本质
- 索引是帮助MySQL高效获取数据的排好序的数据结构
- 索引存储在文件里
- 索引的结构 二叉树 (红黑树[平衡二叉树])、HASH、BTREE【多叉树】
索引为什么不使用二叉树来存储?
- 对于非自增的数据可以使用,如下图所示
- 对于自增的数据不能使用,如下入所示
BTREE的存储结构
- 度(Degree)-节点的数据来存储个数
- 叶节点具有相同的深度
- 叶节点的指针为空
- 节点的数据key从左到右递增排序
B+TREE(BTREE的变种)
- 非叶子节点不存储data只存储key,可以增大度
- 叶子节点不存储指针
- 顺序访问指针,提供区间访问的性能
- 为什么叶子节点增加了指针?
2、索引为什么不使用红黑树与Hash
3、如何建立高性能索引
4、面试关于索引都问些什么
5、MySQL的存储引擎区分数据库表还是区分数据库?
是区分数据库表的,一个数据库中可以存在不同类型的表。
不积跬步,无以至千里;不积小流,无以成江海。