MySQL 为什么用 B+ 树做索引?
B+ 树适合磁盘索引:① 矮胖多叉:单节点存多个键(默认 16KB 页可存上千 key),树高仅 3-4 层,查询 3-4 次 IO 即可(千万级数据);② 非叶子节点只存 key 不存数据,能容纳更多分支,进一步降低树高;③ 叶子节点双向链表有序,范围查询/排序高效(SELECT ... BETWEEN);④ 叶子节点存数据/主键,查询稳定(都到叶子);对比:哈希索引只等值快不支持范围;二叉树高(IO 多);B 树非叶子也存数据(页存分支少)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。