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

InnoDB页结构和聚簇索引

InnoDB采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16 KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中

图片

 

数据页中的记录按照「主键」顺序组成单向链表,单向链表的特点就是插入、删除非常方便,但是检索效率不高,最差的情况下需要遍历链表上的所有节点才能完成检索。

因此,数据页中有一个页目录,起到记录的索引作用,就像我们书那样,针对书中内容的每个章节设立了一个目录,想看某个章节的时候,可以查看目录,快速找到对应的章节的页数,而数据页中的页目录就是为了能快速找到记录。

nnoDB 采用了 B+ 树作为索引。磁盘的 I/O 操作次数对索引的使用效率至关重要,因此在构造索引的时候,我们更倾向于采用“矮胖”的 B+ 树数据结构,这样所需要进行的磁盘 I/O 次数更少,而且 B+ 树 更适合进行关键字的范围查询。

InnoDB 里的 B+ 树中的每个节点都是一个数据页

图片

如果某个查询语句使用了二级索引,但是查询的数据不是主键值,这时在二级索引找到主键值后,需要去聚簇索引中获得数据行,这个过程就叫作「回表」,也就是说要查两个 B+ 树才能查到数据。不过,当查询的数据是主键值时,因为只在二级索引就能查询到,不用再去聚簇索引查,这个过程就叫作「索引覆盖」,也就是只需要查一个 B+ 树就能找到数据 

参考小孩子 小林coding

相关文章:

  • 电商网站设计的准则是什么/哪家公司建设网站好
  • 北京公司建设网站/淘宝seo搜索排名优化
  • 电影网站建设教程/高端网站建设公司排名
  • 做英语翻译兼职的网站/如何让百度收录网站
  • 动易学校网站管理系统/2024年新冠疫情最新消息
  • 网站建设易网拓/品牌宣传有哪些途径
  • 【Redis之Set类型的详解Set类型中常用命令的实践】
  • 机械转码日记【20】vector及vector的模拟实现
  • django-设置X-Frame-Options响应头防止点击劫持攻击
  • java毕业设计垃圾分类网站Mybatis+系统+数据库+调试部署
  • 油猴插件安装以及好用的脚本推荐 包含电脑版本和手机版本
  • (附源码)计算机毕业设计SSM基于Java水果商城设计
  • 李宏毅2021《机器学习/深度学习》——学习笔记(3)
  • Lesson 52 A pretty carpet 漂亮的地毯
  • Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
  • 线段树2----简单拓展
  • linux服务器开发笔记(日志部分)strrchr()及strchr()
  • 基于FPGA的分形编码器verilog设计——详细版