Mysql InnoDB

InnoDB中数据是如何存储的

system tablespace : 一个数据文件,用来存储一个或多个InnorDB 以及相关的 索引

image-20180412010618020

定义

InnoDB数据目录

重做日志

在InnoDB的数据目录下,会有2个文件:ib_logfile0,ib_logfile1,他们就是重做日志(redo log)。日志的大小会影响数据库的性能。写入的时候,是先写入redo log buffer,然后按照一定的条件写入日志文件。从缓存写入磁盘的时候,是以512字节(一个扇区)为单位写入的。因为扇区是写入的最小单元,所以写入必定成功。从缓存写入磁盘,有几种选择:

  • 0 事物提交,不将重做日志写入磁盘,等待主线程每秒的刷新
  • 1 事物提交,写入磁盘,并调用fsync
  • 2 事物提交,写入磁盘,不fsync,其实是写入的文件系统的缓存。