Mysql选用B+Tree结构(笔记整理)

B+Tree和B-Tree的区别?

  1. B+树几点关键字搜索采用闭合区间
  2. B+树非叶节点不保存数据相关信息,只保存关键字和子节点的引用
  3. B+树关键字对应数据保存在叶子节点中
  4. B+树节点是顺序排列并且相邻节点具有顺序引用的关系

为什么mysql不使用平衡二叉树?

数据处的深度决定着他的IO操作次数,IO操作耗时大
每一个磁盘块保存的数据量太小
B+Tree和B-Tree的区别?
B+树几点关键字搜索采用闭合区间
B+树非叶节点不保存数据相关信息,只保存关键字和子节点的引用
B+树关键字对应数据保存在叶子节点中
B+树节点是顺序排列并且相邻节点具有顺序引用的关系
B+树是B-树的变种,他拥有B-树的优势
B+树扫库扫表能力强,磁盘读写能力更强
排序能力更强,查询效率更加稳定

为什么选用B+Tree?
稳定(B-Tree寻子不稳定,可能1次1层,也可能2次100层才能检索到,效率是不稳定)

B+Tree 每次都查到最后一层,所以每次查的效率是稳定的)

为什么不用红黑树呢?

要求是从根节点到叶子节点的最长路径不大于最短路径的2倍
这个要求远远不够,IO次数还是太多了,所以不适用与数据库的索引
B+Tree三层,三次IO就能达到2千多万条数据

发布了10 篇原创文章 · 获赞 8 · 访问量 314

猜你喜欢

转载自blog.csdn.net/weijx_/article/details/104015708
今日推荐