钱塘江上潮信来,今日方知我是我
002-为什么MySQL选择使用B+树作为索引结构?
002-为什么MySQL选择使用B+树作为索引结构?

002-为什么MySQL选择使用B+树作为索引结构?

核心原因是磁盘I0次数最少。数据库的数据存在磁盘上,磁盘随机读写比内存慢10万倍,所以索引结构的设计目标就是尽量减少磁盘访问次数。


B+树能做到这一点靠三个特性:
1)树矮。B+树是多叉树,一个节点能存几百上千个key。3层的B+树就能存两千多万条数据,查任何一条最多3次磁盘IO。红黑树是二叉树,存同样的数据量要二十多层,I0次数直接爆炸。


2)非叶子节点只存key 和指针,不存数据。一个16KB的页能塞进更多索引项,内存里能缓存更多索引,命中率高,磁盘访问少。


3)叶子节点用双向链表串起来。范围查询时,定位到起点后顺着链表往后扫就行,不用再回根节点重新查找,顺序I0比随机I0快太多。

输入,输出,复盘,重复。

📊 本站数据

文章总数

12

本文阅读

0