mysql底层原理

1、索引底层数据结构B+Tree详解

索引的本质

  • 索引是帮助MySQL高效获取数据的排好序数据结构
  • 索引存储在文件
  • 索引的结构 二叉树 (红黑树[平衡二叉树])、HASH、BTREE【多叉树】

索引为什么不使用二叉树来存储?

  • 对于非自增的数据可以使用,如下图所示

  • 对于自增的数据不能使用,如下入所示

BTREE的存储结构

  • 度(Degree)-节点的数据来存储个数
  • 叶节点具有相同的深度
  • 叶节点的指针为空
  • 节点的数据key从左到右递增排序

B+TREE(BTREE的变种)

  • 非叶子节点不存储data只存储key,可以增大度
  • 叶子节点不存储指针
  • 顺序访问指针,提供区间访问的性能

  • 为什么叶子节点增加了指针?

2、索引为什么不使用红黑树与Hash

3、如何建立高性能索引

4、面试关于索引都问些什么

5、MySQL的存储引擎区分数据库表还是区分数据库?

是区分数据库表的,一个数据库中可以存在不同类型的表。

 

posted @ 2019-04-21 16:42  二叉树的博客  阅读(709)  评论(0编辑  收藏  举报