Mysql InnoDB 事务的那些事儿
这里将为大家介绍数据库和日志是怎样将内存与磁盘的数据进行同步的!
并且说明数据库怎样进行数据恢复
Innodb使用日志来减小内存与磁盘之间同步的巨大开销,通过单独的日志线程,批量的同步日志缓存中的日志到磁盘,这样写入的文件更加的顺序,效率会更高。
日志文件可配置的参数:
innodb_log_files_in_group:代表几组日志,默认为2.
innodb_log_file_size: 代表日志ib_logfile的大小,范围为5mb~4Gb,所有日志文件大小加起来不能超过4Gb,如果设置的日志文件过大,I/O磁盘的次数会减少,checkpoint会变少,但数据恢复时的工作量会过大,如果过小,会导致checkpoint过多,造成更多的写操作。
更改日志文件配置需删除旧日志文件,或移动到其他位置,重启后才能成功!
同步过程:
当你改写数据库任何数据的时候,都会将操作记录写入日志缓存中,当日志缓存满时,或者事务提交时,或者每一秒钟,这三个条件都有可能会触发日志的同步 (如下图)