数据库学习案例20240131-MYSQL 双11安全配置

本文详细解释了InnoDB引擎的两个关键配置参数:innodb_flush_log_at_trx_commit影响事务提交后的日志刷盘策略,sync_binlog控制binlog的同步频率。默认情况下,MySQL采用双1配置,即每事务提交时立即刷盘。
摘要由CSDN通过智能技术生成

其实就是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,都设置为 1 就是双 1 设置。MySQL 默认配置就是双 1 配置。

innodb_flush_log_at_trx_commit 是 innodb 引擎的配置,sync_binlog 是 MySQL 引擎上层的配置,都是控制磁盘写入策略。

MySQL innoDB引擎在事务 commit 之后:

binlog 写内存
redo log 写内存
根据这两个配置决定这两个日志是否刷盘(调用fsync)
commit完成
innodb_flush_log_at_trx_commit:redo log 的刷盘策略,默认为 1

如果innodb_flush_log_at_trx_commit设置为 0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作;
如果innodb_flush_log_at_trx_commit设置为 1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去;
如果innodb_flush_log_at_trx_commit设置为 2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
sync_binlog:binlog 的刷盘策略,默认为0

如果为 0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。
sync_binlog = N (N>0),MySQL 在每写 N 次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。
————————————————

 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/zhxdick/article/details/112552833

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值