InnoDB引擎中的磁盘文件分类
日志文件
1:重做日志(redolog)文件:保证数据完整性,默认是两个文件:ib_logfile0,ib_logfile1,默认文件大小50M,可以调整,文件循环写。写满第一个再写入第二个。还有一个achieveredolog(重做日志归档文件):当InnoDB数据存储文件发生错误时,以此文件将数据恢复为正确的状态,来保证数据正确性和完整性。
#MYSQL#2:系统表空间(ibdata1):12M为单位,可以自动扩展。包含插入缓冲区、双写端,回滚端(默认包含,可以设置让它单独出来),和数据字典。
3:用户表空间:存储表的数据索引信息。数据存储磁盘结构如下:
文件存入时不是随便存入的,会进行分区处理,用户表空间分成若干段,每个段分成一个个区,每个区又会分成很多个16个数据页,大小为1M,页是Mysql的数据基本单位,MySql数据读取都是以页为单位,一个页默认16k。页再往下细分为行,就是表结构中的每一行数据,大小不一定。所以每次读取可能读取不到一行,也可能多行。行分为四种格式:Compact、Redyndant、Dynamic(MySql5.7默认格式)和Compressed行格式。