MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。

sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。

sync_binlog>0,表示每sync_binlog次事务提交,MySQL调用文件系统的刷新操作将缓存刷下去。

sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。

这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据。

但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交,同样很大的影响MySQL和IO性能。

虽然可以通过group commit的补丁缓解,但是刷新的频率过高对IO的影响也非常大。

对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。

所以很多MySQL DBA设置的sync_binlog并不是最安全的1,而是100或者是0。

这样牺牲一定的一致性,可以获得更高的并发和性能。

最新文章

  1. for循环每次展示固定条数的数据的写法。
  2. ASP.NET管道
  3. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看
  4. wdlinux 一键安装
  5. 用yo命令创建项目
  6. Android开发笔记-加载xml资源
  7. php生成圆形图片
  8. SaaS系列介绍之十四: SaaS软件开发分析
  9. Inaccurate values for “Currently allocated space” and “Available free space” in the Shrink File dialog for TEMPDB only
  10. ERROR 1045 (28000): Access denied for user 'root'@'localhost'
  11. Centos6.5静默安装Oracle11g
  12. jsp图片上传
  13. web项目直接在浏览器上访问不需要带.jsp,直接ip地址加项目名 在web.xml里配置
  14. bgp选路原则【第二部】
  15. 纯CSS菜单样式,及其Shadow DOM,Json接口 实现
  16. 1.3 正则表达式和python语言-1.3.7 匹配任何单个字符
  17. [LeetCode] Race Car 赛车
  18. 8位、16位、32位单片机中的“XX位”指什么?
  19. 链接学习之obj文件探索
  20. BUILDING WITH BOOTSTRAP

热门文章

  1. Django day16 Auth组件
  2. Python 34(进程了解)
  3. centos7用rpm安装mysql5.7【初始用yum安装发现下载非常慢,就考虑本地用迅雷下载rpm方式安装】
  4. ArrayList 扩容原理
  5. 详细解读css中的浮动以及清除浮动的方法
  6. CentOS 安装dotNetCore
  7. 子线程更新UI
  8. android黑科技系列——应用市场省流量更新(增量升级)原理解析
  9. Block的本质与使用
  10. DataGridView 单击赋值