知识卡片
B+树三层结构支撑两亿条记录
内容
InnoDB以16KB为一个Page,非叶子节点约装1000个Key,叶子节点约装200条记录。三层B+树:第一层1个Page存1000个Key,第二层1000个Page各存1000个Key,第三层100万个Page各存200条记录,总容量约2亿条、占16GB磁盘。只要前两层(约16MB)装进内存,等值查询仅需1次磁盘I/O。发散:分支因子越大、树越矮胖,这个杠杆效应越强。
参考来源
- 位置:第6章《数据库》6.3节「B+树索引」相关小节(源文件:_epub-src/text/part0027.html)
- 结论依据:原文明确给出16KB Page下非叶子节点约装1000个Key、叶子节点约装200条记录的估算,三层B+树可存储1000×1000×200=2亿条记录约16GB,前两层装入内存约16MB,一次等值查询只需1次I/O,直接支持卡片对B+树三层结构支撑两亿条记录的论述。
- 原始内容:"第三层:1000×1000个节点(Page),每个Page里面装200条记录,即是1000×1000×200=2亿条记录,总容量是16KB×1000×1000,约16GB……三层B+树就可以支撑2亿条记录,并且一次基于主键的等值查询,只需要一次I/O(读取叶子节点)。"