透明表空间压缩create table jjj(a int) compression="zlib";
alter table jjj compression="lz4";
文件系统层面的压缩
稀疏文件如图1
读取的啥时候还是按压缩前的读取,文件系统知道是否压缩
整个ibd物理上有变小
innodb_sys_tablespaces可以看使用空间 file_size看到的没有压缩的空间allocated_size是分配的空间
物理占用的是allocated_size的大小
fs_block_size 文件系统的大小
show warnings;这张表并没有开透明表空间压缩
PUNCH HOLE support not available 不支持透明压缩
表空间--记录
innodb存储引擎是索引组织表
每张表一定要有主键
叶子节点存放所有数据
索引即数据
数据即索引
聚集索引记录存在以下系统列
rowid;b+树索引键值
roll pointer:7字节
非页节点(键值和指针)
非页节点可以有多层
索引b+树如图2
非页节点不一定包含所有键值,是一个范围
索引组织表都是逻辑有序的
pointer是什么,只需要pageno
实际页没有层次 都是连在一起的页,通过指针(第几个页pageno)联系起来
每个叶子页可以自己连接(双向链表)
leaf page和none leaf page
leaf page segment
none leaf page segment
innodb每个索引都有两个段
myisam的索引是怎么组织的???