MySQL用page页来管理和存储数据文件,这些page页是如何被组织起来的,真实的数据(data,index) 真实是怎么存放在ibd文件和内存中的呢,了解存储格式,将帮助我们更好的理解MySQL是如何工作的,从而更好的理解其他数据库知识点(索引,MVCC,等等),本视频中我将利用Python脚本把这些难以理解的数据页解析出来并图形化展示给大家,望大家知其然而知其所以然
视频较长,分两段录制,录制时音量较小,注意控制下声音大小。
核心问题:MySQL(*innodb)是如何组织,存储表数据的?
innodb单表最大能到多少,为什么?
为什么innodb数据文件的大小始终可以被16384整除?
int 和bigint 差别有多大?
varchar(10) 和varchar(100) 差别有多大?varchar(1000)呢? TEXT 呢?
1页(page)=基本单位,存储和读取的核心,每页大小默认:16k
1区(extend)=64页,64*16k=1M
1组(space)=256区, 256*1M=256M
每个page都有个编号,整型最大 2^32 x 16k = 64T (单表大小上限)
下面是分析.idb文件的脚本,执行结果截图
>> Home