首页 > 数据库技术 > 详细

mysql-innodb的表空间

时间:2021-04-22 15:42:16      阅读:20      评论:0      收藏:0      [点我收藏+]

独立表空间

表空间中存储着承载数据的页,对于16kb的页来说,64个页组成一个区(extent),也就是默认一个区1M,每256个区划分为1组

区的概念是用来管理页的,目的是让在同一个区的页尽量在物理介质上离得近,一个区在物理上就是连在一起的64个页,以提高io查找效率,当数据多的时候会直接分配一个区或者几个区

一个索引会产生两个段,一个用来存储非叶子节点区 一个存储叶子节点区,段是以区为单位申请的空间

XDES Entry记录着对应区的属性

技术分享图片

 

  segment Id:当区归属于某个段时 segment Id 代表哪个段的id 不归属与段时 没值

  state: 区的状态FREE(空闲的区)、FREE_FRAG(部分空闲的区)、FULL_FRAG(满的区)和FSEG(归属于某个段的区)

  page state bitmap: 16字节 128位 64个页一个区,每两bit代表一个页的空闲状态第一位表示是否空闲

 

  表空间由若干个区组成,每个区对应一个XDES Entry结构,直属于表空间的区有三个链表,分别是free free_frag full_rag状态的链表

  直属于段的区有三个链表,分别是free free_frag full_rag状态的链表

  每个链表都对应一个List Base Node结构记录了链表的头 链表的尾 链表包含的节点数量 以便我们找到对应的链表

mysql-innodb的表空间

原文:https://www.cnblogs.com/isnotnull/p/14417577.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!