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