mysql innodb 的 逻辑存储结构

如上图:
innodb 的 逻辑存储单元分成 表空间,段,区,页 4个等级
默认情况下,一个数据库 所有变共享一个 默认的表空间(tablespan)。可以指定每个表一个表空间。
一个表空间管理着 多个 segment( 段 ),不固定个数
一个段管理着多个区( extent ),并且一个区是一个 1M 。
一个 区 有 64 页 (page),一个页是 16K。
页是mysql 逻辑存储单元的最小单元,一个 页可以保存多行的数据。
page 结构:File Header(38字节),Page Header(56字节),Infimun和Supremum Records,User Records,Free Space,Page Directory,File Trailer(8字节)
File header:文件头里面包含了该页所在表空间信息,该页在表空间内的偏移量,该页的checksum值,该页的LSN值,该页的类型,该页的上一页指针,该页的下一页指针,页号
page header(位置信息、统计信息,状态信息):在页目录中的槽数、第一个记录的指针、指向可重用空间的首指针、当前页在索引树中的位置、索引ID、记录数、已删除记录的字节数、该页中记录的数量(包括最大最小记录)、最后插入记录的位置、最后插入记录的方向、一个方向连续插入记录的数量、修改当前页的最大事务、PAGE_BTR_SEG_LEAF、PAGE_BTR_SEG_TOP
infimum和supremum record:每个数据页中都有两个虚拟的行,用来限定记录的边界
user record:实际存储行记录内容
free space:空闲空间,同样是个链表结构。在一条记录被删除后,该空间会被加入到空闲链表中
page directory:存放了记录的相对位置,这些记录的指针称为槽
File Trailer:前面四个字节代表该页的checksum值,最后四个字节与FIle header中的FIL_PAGE_LSN相同,通过比较这两个值来保证页的完整性
mysql innodb 的 逻辑存储结构的更多相关文章
- InnoDB的逻辑存储结构是什么,表空间组成包括哪些?
一.表空间 在InnoDB中我们创建的表还有对应的索引数据都存储在扩展名为.ibd 的文件中,这个文件路径可以先通过查mysql变量datadir来得到,然后进入对应的数据库名目录,会看到很多ibd, ...
- MySQL InnoDB 逻辑存储结构
MySQL InnoDB 逻辑存储结构 从InnoDB存储引擎的逻辑结构看,所有数据都被逻辑地存放在一个空间内,称为表空间,而表空间由段(sengment).区(extent).页(page)组成.p ...
- MYSQL Innodb逻辑存储结构
转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...
- InnoDB的表类型,逻辑存储结构,物理存储结构
表类型 对比Oracle支持的各种表类型,InnoDB存储引擎表更像是Oracle中的索引组织表(index organized table).在InnoDB存储引擎表中,每张表都有个主键,如果在创建 ...
- InnoDB 逻辑存储结构
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/80 如果创建表时没有显示的定义主键,mysql会按如下方式创建主 ...
- InnoDB逻辑存储结构
从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace).表空间又由段(segment).区(extent).页(page)组成.页在一些文档中 ...
- InnoDB存储引擎表的逻辑存储结构
1.索引组织表: 在InnoDB存储引擎中,表都是依照主键顺序组织存放的.这样的存储方式的表称为索引组织表,在innodb存储引擎表中,每张表都有主键.假设创建的时候没有显式定义主键,则Inn ...
- MySQL InnoDB 索引 (INDEX) 页结构
MySQL InnoDB 索引 (INDEX) 页结构 InnoDB 为了不同的目的而设计了不同类型的页,我们把用于存放记录的页叫做索引页 索引页内容 索引页分为以下部分: File Header:表 ...
- oracle逻辑存储结构
oracle数据库管理系统有三个重要的概念:实例.数据库.数据库服务器.oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构.逻辑存储结构用于描绘Oracle内部组织和管理数据的方式,而物理 ...
随机推荐
- SQLServer 中存储过程
SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回: 1. 用return返回数字型数据 2. 用返回参数 ...
- RPC 编程
我们从一个简单的 RPC "Hello, world!"的例子开始. 参考资料:MSDN: Win32 and COM Development -> Networking - ...
- linux大神
http://blog.csdn.net/skykingf/article/category/780616
- laravel请求处理管道例子
例子: <?php interface Middleware{ public static function handle (Closure $next);} class VerifyCsrfT ...
- Linux 中执行Shell 脚本的方式(三种方法)
Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...
- Ubuntu 18.04/18.10快速开启Google BBR的方法
说明:Ubuntu 18.04改变挺大的,内核直接升到了正式版4.15,而BBR内核要求为4.9,也就是说满足了,所以我们不需要换内核就可以很快的开启BBR,这里简单说下方法. 提示:Ubuntu 1 ...
- Ubuntu环境下java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
一.问题描述 Ubuntu环境中,将maven项目打包成jar包传到服务器中后运行以下指令: $ java -cp my.jar com.myproject.Main 遇到报错: java.lang. ...
- (转)打开Mac OSX原生的NTFS功能
xingchongsmbp3:~ xingchong$ xingchongsmbp3:~ xingchong$ xingchongsmbp3:~ xingchong$ sudo ln -s /Volu ...
- gulp 前端构建工具使用
gulp 前端构建工具使用 1.新建一个web h5项目 2.准备好gulpfile.js文件 (1)下载链接:https://pan.baidu.com/s/116J-BaYOMRzeJW3i_J ...
- leetcode-129-求根到叶子结点数字之和
题目描述: 第一次提交: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self. ...