1、InnoDB存储引擎
InnoDB是MySQL默认的存储引擎,也是使用最广泛的存储引擎。用户使用客户端执行SQL命令请求时,MySQL服务器经历了连接管理、查询缓存、语法解析、查询优化、调用存储引擎。MySQL存储引擎负责数据的处理,内存中处理过后的数据刷入磁盘,或者磁盘数据写人内存。
2、InnoDB数据页
InnoDB存储引擎主要负责高效的将数据存储到磁盘或者从磁盘调取数据。存储到磁盘中及时关机重启数据依旧存在,而真正在处理数据的时候,是在内存中完成的,所以在查询数据的时候需要把磁盘中的数据读取到内存中,在插入或者修改数据时,需要将内存的数据写人到磁盘中。如果每次查询或者修改一条数据,就进行一次读或者写的IO操作,那么效率无疑是特别低,为了解决这个问题,InnoDB采用的方式是将数据划分为若干个页,以页作为内存和磁盘交互的基本单位,一般也得大小为16KB,也就是说一次从磁盘中读取16KB大小的数据到内存中,或者将内存中16KB大小的数据刷入到磁盘中。
3、InnoDB行格式
数据库记录数据的时候,分为表,一张表中有行(row)或者叫做记录为最小单位存储数据,这些记录或者行在磁盘上的存储方式被叫做行格式或者记录格式。InnoDB存储引擎设计了4类行格式,分别为Compact(紧凑的、密集的)、Redundant(冗余的)、Dynamic(动态)、Compressed(压缩)格式行,Mysql默认的行格式为Compact。
3.1、指定行格式
可以在创建表或者修改表语句中指定行格式,例如
CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称
ALTER TABLE 表名 ROW_FORMAT=行格式名称
示例:<