做网站 以图搜货,邢台做企业网站,敬请期待前一句,赣州seo推广事务的实现 MySQL在进行事务处理的时候采用了日志先行的方式来保证事务可快速和持久运行#xff0c;在写数据之前#xff0c;先写日志#xff0c;开始事务时#xff0c;会记录该事务的一个LSN日志序列号#xff1b;当执行事务时#xff0c;会往Innodb_log_buffer日志缓冲… 事务的实现 MySQL在进行事务处理的时候采用了日志先行的方式来保证事务可快速和持久运行在写数据之前先写日志开始事务时会记录该事务的一个LSN日志序列号当执行事务时会往Innodb_log_buffer日志缓冲区中插入事务日志(redo log)当事务提交时会将日志缓冲区里的事务刷入磁盘由innodb_flush_log_at_trx_commit参数进行控制何时刷入磁盘 0 延迟写 事务提交时不会将redo log buffer中日志写入到os buffer中而是每秒写入os buffer并调用fsync()写入到redo log file中如果系统崩溃将丢失1秒的数据性能最好但是安全性最差 1 实时写实时刷 事务每次提交都会将redo log buffer中的日志写入到os buffer并调用fsync()刷到redo log file中虽然不会丢失数据但是每次都写入磁盘IO性能较差 2 实时写延迟刷 每次提交将redo log buffer中的日志写入os buffer但是每秒调用一次fsync()将os buffer中的日志写入到redo log file中 除了记录事务日志redo log外还会记录回滚日志undo log在进行数据修改时由于某种原因失败了需要进行回滚操作可以利用undo log来将数据回滚到修改之前的样子 https://zhhll.icu/2022/数据库/关系型数据库/MySQL/进阶/Innodb/2.事务的实现/ 本文由 mdnice 多平台发布