图解MySQL索引:B-树、B+树,终于搞清楚了( 二 )
本文插图
本文插图
三、问题
问:为什么索引结构默认使用B-Tree , 而不是hash , 二叉树 , 红黑树?
hash:虽然可以快速定位 , 但是没有顺序 , IO复杂度高 。 二叉树:树的高度不均匀 , 不能自平衡 , 查找效率跟数据有关(树的高度) , 并且IO代价高 。
红黑树:树的高度随着数据量增加而增加 , IO代价高 。
问:为什么官方建议使用自增长主键作为索引 。
结合B+Tree的特点 , 自增主键是连续的 , 在插入过程中尽量减少页分裂 , 即使要进行页分裂 , 也只会分裂很少一部分 。 并且能减少数据的移动 , 每次插入都是插入到最后 。
总之就是减少分裂和移动的频率 。
插入连续的数据:
本文插图
插入非连续的数据
本文插图
来源:www.cnblogs.com/liqiangchn/p/9060521.html
推荐阅读
- |为什么使用B+Tree?
- 港股解码|一图解码:继拼多多之后 国美再搭上京东
- 栈外|搜索引擎优化的三个诀窍,送你的网站“C位出道”
- 荔枝荔枝2020年Q1财报一张图解析:营收3.7亿元超预期,用户活跃度创历史新高
- 搜索引擎SEO是什么意思?以下是你需要知道的一切
- 软网推荐:条理分明 请个索引专家
- 落雅墨2020年了,你现在在用什么搜索引擎呢?
- []揭秘MySQL生态重要功能,X-Engine引擎核心能力——OnlineDDL
- 美好,一直在身边原创图解丨一图读懂“互联网+政务服务”
- 【消费测评世界】百度即将赶下神坛?安逸太久不是好事,字节跳动进军搜索引擎板块