• 技术文章 >数据库 >MySQL

    mysql页的概念分析

    小妮浅浅小妮浅浅2021-08-20 09:46:55原创2930

    说明

    1、页是 InnoDB 中管理数据的最小单元。Buffer Pool 中存的就是一页一页的数据。

    2、往MySQL插入的数据最终都是存在页中的。在 InnoDB 中的设计中,页与页之间是通过一个双向链表连接起来。

    数据页构成

    File Header

    描述页的校验和,页号,上/下页的指针,页的类型,页属于哪个表空间等信息

    Page Header

    记录了有多少个slot,空闲空间的偏移量,已经存储了多少条数据等信息

    Infimum+Supremum

    这两个并非是用户插入的数据,是虚拟列,Infimum代表着当前页中最小的数据行,Supremum代表当前页中数据行(按照主键排序的大小),User records记录都位于它们之间,并且通过每条记录的行格式中的一些属性(next_record)形成按照主键排列顺序的数据链表,再加上最小的虚拟行Infimum与Supremum就组成了当前页的数据链表。

    User records

    用户插入的数据行

    Free sparce

    当前未存放用户数据的空间

    Page Directory

    如果一行数据长度比较小,比如表只有一个int类型的id字段,那么一个页中会存放非常多的行记录。如果查询数据就需要遍历页中所有的记录取出满足select条件的数据,这样的话遍历速度会比较慢。Page Directory存放了很多slot,slot存放着每个组中数据行的偏移量,数据链表是按照主键排列有序的,所以Page Directory可以使用二分查找法快速定位要插入与快速查找的数据在页中的位置.组的生成逻辑三言两语说不清楚,可以直接理解成,对于当前页中的数据行进行横向划分,大部分组中数据有4-8行。

    File Trailer

    存储了校验和LSN,与File Header的校验一起校验数据的准确性。

    以上就是mysql页的概念分析,希望对大家有所帮助。更多mysql学习指路:MySQL

    推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

    专题推荐:mysql页
    上一篇:mysql查看表结构的两种方法 下一篇:mysql架构的组成

    相关文章推荐

    • mysql双机热备如何实现• mysql有哪些索引类型• mysql中B+Tree索引和Hash索引的不同• mysql存储引擎的分类及使用场景• mysql覆盖索引的优点探究• mysql覆盖索引的使用注意• mysql错误日志文件是什么• mysql中mysqldumpslow命令的介绍• mysql查询日志的使用• mysql二进制日志是什么• mysql二进制日志有哪些作用• mysql二进制日志如何开启• mysql查看二进制日志的方法• mysql二进制日志的参数介绍• mysql外键约束的理解• mysql绑定变量是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网