innodb_flush_log_at_trx_commit

  1. innodb_flush_log_at_trx_commit=0时, log buffer将每秒一次地写入log file, 并且log file的flush(刷新到disk)操作同时进行. 此时, 事务提交是不会主动触发写入磁盘的操作.

  2. innodb_flush_log_at_trx_commit=1时(默认), 每次事务提交时, MySQL会把log buffer的数据写入log file, 并且将log file flush(刷新到disk)中去.

  3. innodb_flush_log_at_trx_commit=2时, 每次事务提交时, MySQL会把log buffer的数据写入log file, 但不会主动触发flush(刷新到disk)操作同时进行. 然而, MySQL会每秒执行一次flush(刷新到disk)操作

sync_binlog

  1. sync_binlog=0时(默认), 如os刷新其他文件的机制一样, MySQL不会刷新log buffer到disk中去, 而是依赖os机制刷新log buffer数据到binary log中.

  2. sync_binlog=1时, MySQL在写1次二进制日志binary log时, 会使用fdatasync()函数将二进制binary log同步到disk中去.(安全性最高的配置)

  3. sync_binlog=N(N>1)时, MySQL在写N次二进制日志binary log时, 会使用fdatasync()函数将二进制binary log同步到disk中去.

结论

  • 1)当innodb_flush_log_at_trx_commit和sync_binlog 都为 1 时是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。
  • 2)当innodb_flush_log_at_trx_commit设置为0,该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
  • 3)当innodb_flush_log_at_trx_commit设置为2,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

对于订单交易系统。推荐的做法是 innodb_flush_log_at_trx_commit=1 ,sync_binlog=1

对于非订单交易系统。推荐的做法是 innodb_flush_log_at_trx_commit=2 ,sync_binlog=N (N为500 或1000)

要求性能最快,推荐的做法是 innodb_flush_log_at_trx_commit=0 ,sync_binlog=0

最新文章

  1. Python模拟入栈出栈操作
  2. 《Microsoft SQL Server 2008 Internals》读书笔记
  3. ios应用数据存储方式
  4. ubuntu搭建LAMP服务器
  5. IPAD之分割视图 SplitViewController
  6. C# WPF 解压缩7zip文件 带进度条 sevenzipsharp
  7. Boolean 布尔类型详解
  8. 视频编解码学习之路(H264)
  9. IOS高级开发~开机启动&无限后台运行&监听进程
  10. 用Android属性动画实现和演示迪士尼动画基本原则
  11. C# 加载并显示菜单
  12. JavaScript对象(第四天)
  13. 【Python基础】安装python第三方库
  14. 【Mac】Finder显示或隐藏文件
  15. Nutch1.2 的安装与使用
  16. vue 3D小球 loading
  17. sklearn中的metrics模块中的Classification metrics
  18. git repo代码部署策略及工具
  19. write solid code 零散(原文)
  20. sql server2008本地连接选择windows身份验证无法登陆的解决办法

热门文章

  1. keekalived+nginx 高可用
  2. 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
  3. maven报错找不到依赖
  4. linux系统编程之信号(一)
  5. 微信小程序~App.js中获取用户信息
  6. Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, java.lang.String>
  7. 使用Python的turtle库实现六角形以及正方形螺旋线的绘制
  8. AI文本审核垃圾内容
  9. Oracle中修改某个字段可以为空
  10. HDU - 3555 - Bomb(数位DP)