B+树理解
数据结构可视化网站:B+ Tree Visualization (usfca.edu)
对于MySQL而言,B+树节点大小为1页=16K
,因为对于大部分业务,16K足够。通常1-3层B+树就足以应对常见场景。
为什么足够:
- B+树的叶子节点存的是数据行,非叶子节点是key+指针
- 叶子节点:如果一行数据大小是1K,那么能存16个数据
- 非叶子节点:如果key用的是bigint,那么8字节,MySQL中指针是6字节,那么需要
8+6=14
字节,一页16K能存放16*1024/14=1170
个key+指针。根节点有1170个key+指针,下一层有1170*1170
个key+指针,最底层有1170*1170*16=21902400
个数据,达到两千万级别了。
近似满的度为3的高为3的B+树。(0000和0001处没满)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!