当前位置: 首页 > news >正文

对于B+树,为什么说一般查找行记录,最多只需1~3次磁盘IO

对于B+树,为什么说一般查找行记录,最多只需1~3次磁盘IO

一个页的大小是16kb,主键的类型一般为int(4字节)或者bigint(8字节),而指针的大小也是4字节或者8字节,所以一个页中大概能存储 16kb/(8+8)b =1k 个键值,(为了方便计算,这里k取10^3,并假设一个页中能存储 10 ^ 3条记录),那么当B+树的高度为3时,最多能存储 (10 ^ 3 * 10 ^ 3 * 10 ^ 3 =10亿条记录)

但是在实际情况中每一个数据页可能不会存满,所以在数据库中,树的高度可能为2~4层,但是由于根节点是常驻内存的,所有我们查询一条行记录,最大只需要1 ~ 3 次的磁盘IO

相关文章:

  • 如何在充满不确定性的当下探索未来?
  • FPGA—从加法运算理解流水线的作用
  • i.MX 6ULL 驱动开发 十五:按键中断(input子系统)
  • Django用户认证系统
  • 论坛介绍 | COSCon'22 开源硬件(H)
  • 【Vulnhub靶场】——HARRYPOTTER第三部: FAWKES
  • [附源码]Java计算机毕业设计SSMjava视频点播系统
  • Day768.大佬推荐的经典的Redis学习资料 -Redis 核心技术与实战
  • fastdfs简介及在springboot中使用
  • OpenCASCADE使用(Stp to Gltf)
  • 进程互斥的硬件实现方式【操作系统学习笔记】
  • JavaScript教程-原生的原型,Object.prototype,其他的内建原型,从原型当中借用,原型方法,_proto_
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • 基于微信小程序的数码商城程序设计与实现(后台PHP+Mysql)
  • FA_06.不用刷机情况下升级或者降级系统中的fridaserver
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Bytom交易说明(账户管理模式)
  • ComponentOne 2017 V2版本正式发布
  • isset在php5.6-和php7.0+的一些差异
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Koa2 之文件上传下载
  • laravel with 查询列表限制条数
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • MaxCompute访问TableStore(OTS) 数据
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis学习笔记 - pipline(流水线、管道)
  • springboot_database项目介绍
  • ucore操作系统实验笔记 - 重新理解中断
  • 数据可视化之 Sankey 桑基图的实现
  • 我建了一个叫Hello World的项目
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • $.proxy和$.extend
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (poj1.3.2)1791(构造法模拟)
  • (WSI分类)WSI分类文献小综述 2024
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net core 6.0 升8.0
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 回调、接口回调、 委托
  • .net6使用Sejil可视化日志
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [2021 蓝帽杯] One Pointer PHP
  • [AIGC] Redis基础命令集详细介绍
  • [android] 练习PopupWindow实现对话框
  • [CSS]CSS 的背景
  • [hdu2196]Computer树的直径
  • [Java安全入门]三.CC1链