美文网首页
MySQL参数:innodb_flush_log_at_trx_

MySQL参数:innodb_flush_log_at_trx_

作者: 袁先生的笔记 | 来源:发表于2022-12-12 19:10 被阅读0次

innodb_flush_log_at_trx_commit 和 sync_binlog 是两个控制MySQL磁盘写入策略以及数据安全性的关键参数,当两个参数为不同值时,在性能,安全角度下会产生不同的影响。

参数解析

innodb_flush_log_at_trx_commit

  • 0:日志缓存区将每隔一秒写到日志文件中,并且将日志文件的数据刷新到磁盘上。该模式下在事务提交时不会主动触发写入磁盘的操作。该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。

  • 1:每次事务提交时MySQL都会把日志缓存区的数据写入日志文件中,并且刷新到磁盘中,该模式为系统默认。该模式是最安全的,但也是最慢的一种方式。在MySQL服务崩溃或者服务器主机宕机的情况下,日志缓存区只有可能丢失最多一个语句或者一个事务。

  • 2:每次事务提交时MySQL都会把日志缓存区的数据写入日志文件中,但是并不会同时刷新到磁盘上。该模式下,MySQL会每秒执行一次刷新磁盘操作。该模式速度较快,较取值为0情况下更安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

sync_binlog=1 or N

默认情况下,并不是每次写入时都将binlog日志文件与磁盘同步。因此如果操作系统或服务器崩溃,有可能binlog中最后的语句丢失。
为了防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使binlog在每N次binlog日志文件写入后与磁盘同步。

配置参数生效

  • 查看参数
show variables like 'innodb_flush_log_at_trx_commit';
show variables like 'sync_binlog';
  • 动态调整
set global innodb_flush_log_at_trx_commit=2;
set global sync_binlog=100;
  • 永久生效
    修改配置文件my.cnf
[mysqld]
innodb_flush_log_at_trx_commit=2
sync_binlog=100

推荐配置组合

innodb_flush_log_at_trx_commit sync_binlog 描述
1 1 适合数据安全性要求非常高,而且磁盘写入能力足够支持业务。
1 0 适合数据安全性要求高,磁盘写入能力支持业务不足,允许备库落后或无复制。
2 0/N(0<N<100) 适合数据安全性要求低,允许丢失一点事务日志,允许复制延迟。
0 0 磁盘写能力有限,无复制或允许复制延迟较长。

相关文章

  • MySQL参数:innodb_flush_log_at_trx_

    innodb_flush_log_at_trx_commit和sync_binlog是 MySQL 的两个配置参数...

  • MySQL参数:innodb_flush_log_at_trx_

    innodb_flush_log_at_trx_commit 和 sync_binlog 是两个控制MySQL磁盘...

  • Python 连接 MySQL

    安装 python 连接 mysql 工具 python 连接 mysql 参数化, 参数化主要解决的是 sql ...

  • MySQL handler解读

    参数解读 各参数含义参考这个连接(摘抄如下):MySQL Handler mysql> show global s...

  • Mysql 配置优化

    Mysql的参数类型 全局参数 Set global autocommit = on/off 会话参数:(会话参数...

  • 存储过程

    创建存储过程 mysql: 执行存储过程 mysql: 使用OUT参数和INOUT参数: PREPARE和EXEC...

  • MySQL核心参数优化

    MySQL核心参数优化

  • MySQL参数

    innodb_sort_buffer_size 指定创建 InnoDB 索引期间用于排序数据的排序缓冲区的大小 这...

  • mysql命令行

    mysql命令行参数Usage: mysql [OPTIONS] [database] //命令方式-?, --h...

  • 文件

    mysql参数文件 定义:告诉mysql实例启动时候在哪里可以找到数据库文件,并指定某些初始化参数 参数存储在my...

网友评论

      本文标题:MySQL参数:innodb_flush_log_at_trx_

      本文链接:https://www.haomeiwen.com/subject/jklcqdtx.html