MySQL参数: innodb_flush_log_at_trx_commit和sync_binlog
innodb_flush_log_at_trx_commit
当
innodb_flush_log_at_trx_commit=0
时, log buffer将每秒一次地写入log file, 并且log file的flush(刷新到disk)操作同时进行. 此时, 事务提交是不会主动触发写入磁盘的操作.当
innodb_flush_log_at_trx_commit=1
时(默认), 每次事务提交时, MySQL会把log buffer的数据写入log file, 并且将log file flush(刷新到disk)中去.当
innodb_flush_log_at_trx_commit=2
时, 每次事务提交时, MySQL会把log buffer的数据写入log file, 但不会主动触发flush(刷新到disk)操作同时进行. 然而, MySQL会每秒执行一次flush(刷新到disk)操作
sync_binlog
当
sync_binlog=0
时(默认), 如os刷新其他文件的机制一样, MySQL不会刷新log buffer到disk中去, 而是依赖os机制刷新log buffer数据到binary log中.当
sync_binlog=1
时, MySQL在写1次二进制日志binary log时, 会使用fdatasync()函数将二进制binary log同步到disk中去.(安全性最高的配置)当
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
最新文章
- Python模拟入栈出栈操作
- 《Microsoft SQL Server 2008 Internals》读书笔记
- ios应用数据存储方式
- ubuntu搭建LAMP服务器
- IPAD之分割视图 SplitViewController
- C# WPF 解压缩7zip文件 带进度条 sevenzipsharp
- Boolean 布尔类型详解
- 视频编解码学习之路(H264)
- IOS高级开发~开机启动&;无限后台运行&;监听进程
- 用Android属性动画实现和演示迪士尼动画基本原则
- C# 加载并显示菜单
- JavaScript对象(第四天)
- 【Python基础】安装python第三方库
- 【Mac】Finder显示或隐藏文件
- Nutch1.2 的安装与使用
- vue 3D小球 loading
- sklearn中的metrics模块中的Classification metrics
- git repo代码部署策略及工具
- write solid code 零散(原文)
- sql server2008本地连接选择windows身份验证无法登陆的解决办法
热门文章
- keekalived+nginx 高可用
- 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
- maven报错找不到依赖
- linux系统编程之信号(一)
- 微信小程序~App.js中获取用户信息
- Failed to bind properties under &#39;logging.level&#39; to java.util.Map<;java.lang.String, java.lang.String>;
- 使用Python的turtle库实现六角形以及正方形螺旋线的绘制
- AI文本审核垃圾内容
- Oracle中修改某个字段可以为空
- HDU - 3555 - Bomb(数位DP)