- InnoDB页简介
- 行格式
- 指定行格式的语法
- COMPACT行格式
InnoDB是一个将表中的数据存储到磁盘上的存储引擎,即使我们关闭重启服务器,数据还是存在。而真正处理数据的过程发生在内存中,所以需要把磁盘中的数据加载到内存中。如果是处理写入或者修改请求,还需要把内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,与读写内存差了几个数量级。当我们想从表中获取某些记录时,InnoDB存储引擎需要一条一条地把数据从磁盘上读出来吗?不,那样会慢死,InnoDB采取的方式是,将数据划分为若干页,以页作为磁盘和内存之间交互的基本单位。InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。
PS:系统变量Innodb_page_size表明了InnoDB存储引擎中页的大小,默认值16384字节,也就是16KB。该变量只能在第一次初始化MySQL数据目录时指定,之后就再也不能更改了(通过mysqld --initalize来初始化数据目录)
我们平时都是以记录为单位向表中插入数据的,这些记录在磁盘上的存放形式也被称为行格式或者记录格式,目前InnoDB存储引擎设计了4种不同的行格式,分别是COMPACT、REDUNDANT、DYNAMIC、COMPRESSED。
指定行格式的语法创建表 CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称; 例子: CREATE TABLE record_format_demo ( c1 VARCHAR(10), c2 VARCHAR(10) NOT NULL, c3 CHAR(10), c4 VARCHAR(10) ) CHARSET=ascii ROW_FORMAT=COMPACT; 修改表 ALTER TABLE 表名 ROW_FORMAT=行格式名称;COMPACT行格式



