添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

InnodDB

存储结构

  • 所有的数据都被逻辑地存放在表空间中,表空间(tablespace)是存储引擎中最高的存储逻辑单位,在表空间的下面又包括段(segment)、区(extent)、页(page)
  • 最小存储单元page,默认情况下,表空间中的页大小都为 16KB
  • .frm 表结构,不管什么存储引擎通用的
  • .ibd 索引+数据
  • 存储Record

  • 常见的格式:Antelope 是 InnoDB 最开始支持的文件格式,它包含两种行格式 Compact 和 Redundant,Barracuda 的出现引入了两种新的行格式 Compressed 和 Dynamic;
  • 对比Compact 和 Redundant:前者节约空间20%
  • 行溢出,对于可变长度的col,如VARCHAR 或者 BLOB 。不会直接将所有的内容都存放在数据页节点中,而是将行数据中的前 768 个字节存储在数据页中,后面会通过偏移量指向溢出页。但是当我们使用新的行记录格式 Compressed 或者 Dynamic 时都只会在行记录中保存 20 个字节的指针,实际的数据都会存放在溢出页面中。对比如下

  • 存储page

  • 存储格式如下:
  • 页是 InnoDB 存储引擎管理数据的 最小磁盘单位 ,而 B-Tree 节点 就是实际存放表中数据的页面(B+树的节点只能定位到page)。
  • Infimum 记录是比该页中任何主键值都要小的值,Supremum 是该页中的最大值:
  • Page Directory 保持了页内部的定位信息
  • User Records 就是整个页面中 真正用于存放行记录 的部分。(Free是空闲部分)
  •