InnoDB存储引擎
数据存放在磁盘,单真正处理数据是在内存中完成的,MySQL服务器中负责对表中的数据进行读取和写入的部分是存储引擎,服务器又支持不同的存储引擎,比如InnoDB、MyISAM、MEMORY等。
InnoDb 采用方法是:将数据分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDb中页的大小一般为16KB,也就是一般情况下,一次最少从磁盘中读取16Kb的内容到内存中,一次最少把内存中16KB数据刷新到磁盘上。
InnoDB行格式
数据库表中的数据在磁盘上的存放形式称为行格式或是记录格式,行格式分为四种类型:COMPACT、REDUNDANT、DYNAMIC、COMPRESSED。
我们可以使用语句去设置表的行格式:
CREATE TABLE 表名 (字段名) ROW_FORMAT = 行格式名称
ALTER TABLE 表名 ROW_FORMAT = 行格式名称
COMPACT行格式
REDUNDANT格式
Redundant行格式的首部是一个字段长度偏移列表,同样是按照列的顺序逆序放置的。
Dynamic和Compressed行格式
这两种行格式类似于COMPACT行格式,只不过在处理行溢出数据时有点儿分歧,它们不会在记录的真实数据处存储字符串的前768个字节,而是把所有的字节都存储到其他页面中,只在记录的真实数据处存储其他页面的地址。另外,Compressed行格式会采用压缩算法对页面进行压缩。