面试题:反推B+树高度

一个表5000w数据,一个数据行大小为1k,主键为long类型数据,假设指针大小为8B,页大小为16K,求B+树的高度?

B+树的非叶子节点存储key和指针,叶子节点存储数据,对应表中的某些行。

叶子节点存储的行数:16k/1k=2^4

需要叶子节点数:5000w/2^4

一个索引页能存储的索引个数:16k/(8+8)=2^10

树的高度:(2^10)^(h-1)=5000w/2^4

得出h≈3.15

千万级别的数据,b+树的高度也能维持3~5的高度,io次数也非常小。

相关推荐
Java成神之路-21 小时前
Spring AI Alibaba 实现多轮对话记忆:ChatMemory 与 Redis 持久化实战
java·springaialibaba
JAVA面经实录91721 小时前
网络编程基础(Java Web/分布式前置·完整版)(十一)
java·前端·网络
手写码匠21 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 评测实战:用 DeepSeek-R1 当裁判,打造多智能体系统的自动化质量保障体系
人工智能·深度学习·算法·aigc
Escalating_xu21 小时前
【Linux】基础 I/O 深度解析:FILE、文件描述符、open/read/write、重定向与缓冲区
java·linux·服务器
城管不管21 小时前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
Deepsek20051 天前
鸿蒙系统回退至4.3操作指南(手机端操作)
经验分享·科技·华为·微信·智能手机·harmonyos
ZC跨境爬虫1 天前
LeetCode 88. 合并两个有序数组(双指针详解 + Java Python 实现)
java·python·算法·leetcode
Nil2081 天前
leetcode 238除了自身以外数组的乘积
数据结构·算法·leetcode
土司大王1 天前
LeetCode hot100——最长连续序列
数据结构·算法·leetcode
caimouse1 天前
ReactOS 图形系统分析(17):区域填充 — EngPaint / IntEngPaint(paint.c)
c语言·开发语言·算法