B+树层数计算(面试官直呼内行)

   日期:2020-08-29     浏览:404    评论:0    
核心提示:前言莫得前言虽然莫得前言,但看完这篇博客,你将变的异常牛逼一、B+树结构简述跟其它tree结构一样,根节点只有一个,B+树的非叶子节点(包括根节点)可以有多个子节点,它的非叶子节点仅保存索引列和指针,不保存具体行记录;二、如何计算层数首先搞清楚一个常识,我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是 4k,而

前言

简单粗暴,句句精华

虽然莫得前言,但看完这篇博客,你将变的异常牛逼

B+树结构简述

跟其它tree结构一样,根节点只有一个,B+树的非叶子节点(包括根节点)可以有多个子节点,它的非叶子节点仅保存索引列和指针,不保存具体行记录;

如何计算层数

首先搞清楚一个常识,我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。

在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是 4k,而对于我们的 InnoDB 存储引擎也有自己的最小储存单元——页(Page),一个页的大小是 16K。这意味着B+树的每个节点大小为16k,好,知道这个,计算层数就简单了,假设主键为bigint类型,我们知道innoDB的bigint占用8个字节,指针占用6个字节,8+6=14;再来说说行记录大小,常规的互联网项目行记录大小约为1k,那么一个叶子节点能存储的行记录数为16/1=16,非叶子节点能存储的数量为16*1024/14约等于1170,所以,得出两层的B+树能存储的行记录数大约为1170 * 16,三层为1170 * 1170 * 16;

ok我话说完,听懂掌声

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服