【数据库】聊聊一颗B+树 可以存储多少数据

我们知道数据库使用的数据结构是B+树,但是B+树可以存储多少数据呢,在面试中也是经常会问的问题,所以我们从根上理解这个问题。

操作系统层面

数据都是存储在磁盘中的,而磁盘中的数据都是以最新单位扇区进行分割。一个扇区的大小是512字节,也就是0.5KB
文件系统块中的块通常是8个扇区构成,所以一个文件系统块大概是4K,而存储引擎中最小存储单元是页,一个页是4个文件块组成,也就是16K
在这里插入图片描述

InnoDB引擎

show variables like 'innodb_page_size';

在这里插入图片描述
从中可以看到,InnoDB的存储引擎一页是16KB,因为本身是用B+树存储数据的,除了存储数据本身,还需要维护索引组织表。
在这里插入图片描述
查询过程大概如下:
1.根据索引找到对应位置的根页,因为根页在表空间中是固定的,所以说也就是page 3
2.找到根页后,通过二分查找的方式,找到id=3 在page4中
3.根据p4的指引,查找对应索引page 4的数据,找到数据ID=3的数据。
所以你看数据库有多强大,通过对外抽象成SQL进行操作,而内部维护事务、SQL解析、连接、存储、查询等功能。

一颗树可以存放多少行数据

假设一个主键为bigint类型,长度是8字节,而指针大小在源码中是6字节,那么一条数据就是14字节。一页16KB 16384/14 1170条数据。一个高度为2的B+树 可以存放 1170 * 16 = 18720条数据。
一个高度为3的B+树 可以存放 1170 * 1170 * 16 = 21902400条数据。
所以千万级别的数据,页只需要3层B+树就可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/218127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】Playwright模块进行自动化测试

playwright是由微软开发的Web UI自动化测试工具,支持Node.js、Python、C# 和 Java语言,本文将介绍Python版本的Playwright使用方法。 微软开源了一个非常强大的自动化项目叫playwright-python,项目地址:https://github.com/micros…

MapTR 论文研读

MapTR 论文研读 MapTR论文 :https://arxiv.org/pdf/2208.14437.pdf 代码:https://github.com/hustvl/MapTR MapTR(来自地平线) 1.摘要 作者们提出了一种有效构建高清地图的方法(MapTR),该地图为自动驾驶系统的规划提供丰富且精确的环境信息。这是一种结构化端到端变…

明道云伙伴成果与展望

摘要:这篇文章介绍了明道云在过去一年的成果以及未来的计划。明道云将把更多资源和精力投入到伙伴身上,提供更全面的支持,包括产品特性、展业支持和 GTM (Go-To-Market)支持三个方面。在产品特性方面,明道云…

基于51单片机的人体追踪可控的电风扇系统

**单片机设计介绍, 基于51单片机超声波测距汽车避障系统 文章目录 一 概要概述硬件组成工作原理优势应用场景总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于51单片机的人体追踪可控的电风扇系统介绍 概述 该系统是基于51…

【数据结构实验】图(一)Warshall算法(求解有向图的可达矩阵)

文章目录 1. 引言2. Warshall算法原理2.1 初始化可及矩阵2.2 迭代更新可及矩阵 3. 实验内容3.1 实验题目(一)输入要求(二)输出要求 3.2 算法实现 4. 实验结果 1. 引言 Warshall算法是一种用于求解有向图的可达矩阵的经典算法。该算…

QQ空间上传一次 500张限制突破记录

手机又好多照片了,用手机上传耽误时间,就导出到电脑了,上传到qq空间去。 结果发现不开通黄钻无法上传原图,那就开通吧! 开通了黄钻,居然不能一次上传超过 500 张,开通有何用? 五千…

Python pandas数据分析

Python pandas数据分析: 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其…

c语言内存管理

通常程序访问的是虚拟内存,虚拟内存映射到物理内存的一小部分。 在Linux系统中,虚拟内存默认为4G的大小。每个进程都有独立的4G内存地址空间。 int main() {char s[] "hello world"; //s数组位于栈区,复制了一份字符串到数组里ch…

在Python中matplotlib函数的plt.plot()函数的颜色参数设置,以及可以直接运行的程序代码!

文章目录 前言一、使用字符串颜色:二、使用十六进制颜色:三、使用RGB元组:四、使用颜色映射:总结 前言 在matplotlib中,plt.plot()函数可以接受颜色参数,可以设置为字符串颜色(如red&#xff0…

用Python进行数据分析:探索性数据分析的实践与技巧(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【ArcGIS Pro微课1000例】0038:基于ArcGIS Pro的人口密度分析与制图

文章目录 一、人口密度二、人口密度分析1. 点密度分析2. 核密度分析三、结果比对一、人口密度 人口密度是指单位土地面积上居住的人口数,通常以每平方千米或每公顷内的常住人口为单位计算。人口密度同资源、经济密切结合,因此,科学准确地分析人口密度的分布情况,对合理制定…

林业无人机如何提升巡山护林效率?

在郁郁森林之上,一架无人机正盘旋在上空时刻观察着林区的情况。凭借复亚智能的全自动巡检系统,无人机巡山护林的巡视范围和反馈实时性得到了显著提升。 一、林业无人机:科技赋能森林防火 秋季林区时常发生火灾,林业无人机在森林防…