InnoDB是⼀个将表中的数据存储到磁盘上的存储引擎,所以即使关
机后重启我们的数据还是存在的。⽽真正处理数据的过程是发⽣在内
存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写⼊或
修改请求的话,还需要把内存中的内容刷新到磁盘上。⽽我们知道读
写磁盘的速度⾮常慢,和内存读写差了⼏个数量级,所以当我们想从
表中获取某些记录时,InnoDB存储引擎需要⼀条⼀条的把记录从磁
盘上读出来么?不,那样会慢死,InnoDB采取的⽅式是:将数据划
分为若⼲个⻚,以⻚作为磁盘和内存之间交互的基本单位,InnoDB
中⻚的⼤⼩⼀般为
16
KB。也就是在⼀般情况下,⼀次最少从磁盘
中读取16KB的内容到内存中,⼀次最少把内存中的16KB内容刷新到
磁盘中。
InnoDB⾏格式
我们平时是以记录为单位来向表中插⼊数据的,这些记录在磁盘上的
存放⽅式也被称为⾏格式或者记录格式。设计InnoDB存储引擎的⼤
叔们到现在为⽌设计了4种不同类型的⾏格式,分别
是Compact、Redundant、Dynamic和Compressed⾏格式,随着
时间的推移,他们可能会设计出更多的⾏格式,但是不管怎么变,在
原理上⼤体都是相同的。
指定⾏格式的语法
我们可以在创建或修改表的语句中指定⾏格式:
CREATE TABLE 表名 (列的信息) ROW_FORMAT=⾏格式名称
ALTER TABLE 表名 ROW_FORMAT=⾏格式名称
⽐如我们在xiaohaizi数据库⾥创建⼀个演示⽤的
表record_format_demo,可以这样指定它的⾏格式:
文档被以下合辑收录
评论