文章目录

  • MySQL之InnoDB主键索引的B+树的高度计算
    • 1.高度为2和3、主键bigint类型、一行记录数据大小1k

MySQL之InnoDB主键索引的B+树的高度计算

1.高度为2和3、主键bigint类型、一行记录数据大小1k

InnoDB存储引擎最小储存单元是页,一页大小就是16k。
B+树叶子存的是数据,内部节点存的是键值+指针。索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中,进而再去数据页中找到需要的数据;

假设B+树的高度为2的话,即有一个根结点和若干个叶子结点。这棵B+树的存放总记录数为=根结点指针数*单个叶子节点记录行数
假设一行记录的数据大小为1k,那么单个叶子节点可以存的记录数 =16k/1k =16.
非叶子节点内存放多少指针呢?我们假设主键ID为bigint类型,长度为8字节(int类型的话,一个int就是32位,4字节),而指针大小是固定的在InnoDB源码中设置为6字节,假设n指主键个数即key的个数,n*8 + (n + 1) * 6 = 16K=16*1024B , 算出n约为 1170,意味着根节点会有1170个key与1171个指针、因此,一棵高度为2的B+树,能存放1171* 16 = 18736条这样的数据记录。同理一棵高度为3的B+树,能存放1171 * 1171 * 16 = 21939856,也就是说,可以存放两千万左右的记录。B+树高度一般为1-3层,已经满足千万级别的数据存储。


MySQL之InnoDB主键索引的B+树的高度计算相关推荐

  1. MySQL学习笔记-主键索引和二级索引

    文章目录 MySQL学习笔记-主键索引和二级索引 1.笔记图 2.索引的常见模型 3.InnoDB 的索引模型 4.主键索引和普通索引查询的区别 5.如何选择主键字段 6.笔记图 7.回表过程 8.最 ...

  2. mysql 主索引跟辅助索引_MySQL_MySQL索引之主键索引,在MySQL里,主键索引和辅助索 - phpStudy...

    MySQL索引之主键索引 在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别. 1.主键索引 主键 ...

  3. mysql聚簇索引和主键索引的区别

    首先,聚簇索引的含义:它并不是数据库索引的某一种类型,而是用来表示数据的一种存储方式.而在innodb中,数据是以B+树的形式进行存储(此处放一个链接来解释B+树),且所有的数据都存储在叶子节点上,非 ...

  4. mysql sql删除主键索引_sql操作之添加删除索引

    一.创建删除主建索引 1.在创建表时就创建好索引 CREATE TABLE `student` ( `id` int(4) NOT NULL AUTO_INCREMENT, `name` char(2 ...

  5. mysql主键索引_MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别. 1.主键索引 主键索引,简称主键,原文是PR ...

  6. Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

    了解了主键索引的底层原理,主键索引其实就是根据主键字段建立相关的数据结构(B+树),此后在使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点.除了主键索引外,普通索引和唯一键索引也是如此, ...

  7. MySQL索引之主键索引

    导读 在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别. 1.主键索引 主键索引,简称主键,原文 ...

  8. Mysql主键索引与非主键索引

    Mysql主键索引与非主键索引 前言 InnoDB引擎 主键索引: 非主键索引 MySIAM引擎 主键索引 非主键索引 InnoDB和MyISAM的区别 前言 什么是B树: B树也叫B-树,是一棵多路 ...

  9. MySQL自增主键auto_increment原理 与 自增主键出现间隙不连续现象的定位

    一.背景: 1.1.业务描述与SQL: 为了保存机器上报信息(业务需求是每个机器只需保存最新的一条记录),原 SQL 语句如下(其中,machineId 的为唯一索引,t_report_pad 的 i ...

最新文章

  1. YOLOV5 的小目标检测网络结构优化方法汇总(附代码)
  2. Oracle数据库文件恢复与备份思路
  3. 关于CPU的12个硬核干货!
  4. 分类算法中的ROC与PR指标
  5. .net关于app.config的使用 对于自己的类库
  6. 9.卷1(套接字联网API)---基本SCTP套接字编程
  7. NVIDIA GPU Compute Capability解释
  8. springboot后台搭建及登录注册接口编写
  9. python树莓派串口通信实例_使用树莓派和Python实现ModbusTCP通讯
  10. mysql备份导出数据库结构_MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)详解...
  11. 搜狗输入法人机交互设计的用户体验
  12. 【计算机网络】计算机网络常用网络命令
  13. Mac使用Charles抓包
  14. 【报告分享】2021上半年全球手游广告变现报告-TopOn(附下载)
  15. 架构师之路046 服务端开发的总结
  16. 推荐6款无可挑剔的电脑软件,你用过几款?
  17. pgsql 筛选中文字符正则_匹配中文字符的正则表达式
  18. fs模块下的readFile()和readFileSync()
  19. uni-app之城市选择
  20. 【从基础概念到手写】防抖-节流函数的基本实现和补充

热门文章

  1. (Fabric学习坑)com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;
  2. 不知道短视频很火的配音怎么制作?只需要看这一篇就够了
  3. 说说IO(七)- RAID
  4. 镜头像差之三——慧差
  5. EVE 设备开机时的更改连线
  6. pos 机 gd32f103 midi设备
  7. 登陆拦截页面报错:localhost 将您重定向的次数过多。 尝试清除 Cookie. ERR_TOO_MANY_REDIRECTS
  8. 常见六种热量高食物和饮料
  9. vue-cropper图片裁剪 PC
  10. “景驰科技杯”2018年华南理工大学程序设计竞赛 C Youhane's Undergraduate Thesis (大模拟)