mysql 中 sync_binlog 参数作用

Wesley13
• 阅读 574

sync_binlog”:这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性。对于“sync_binlog”参数的各种设置的说明如下:

sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。

sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

在MySQL中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。而当设置为“1”的时候,是最安全但是性能损耗最大的设置。因为当设置为1的时候,即使系统Crash,也最多丢失binlog_cache中未完成的一个事务,对实际数据没有任何实质性影响。

从以往经验和相关测试来看,对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL binlog2sql实现MySQL误操作的恢复
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能。原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是反向的SQL语句)。在格式为binlog格式为r
Wesley13 Wesley13
3年前
Mysql数据库的优化
一:Mysql参数优化1.查看mysql参数最大连接!(https://oscimg.oschina.net/oscnet/0e4e34a1cc875042ecb1d51e365443b7a66.png)调大mysql参数连接(最大可设置12384)!(https://oscimg.oschina.net/oscnet/b213d5
Wesley13 Wesley13
3年前
mysql 的 log 和 MVCC
1、binlogMySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。使用binlog日志大约会有1%的性能损耗。应用:1)MySQL主从复制:MySQLReplication在Ma
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
MySQL 5.7 新增参数
这些数据是通过” showglobalvariables;” 获得,可能不是所有的新增参数。我的MySQL版本是5.7.24。参数默认值binlog\_group\_commit\_sync\_delay0binlog\_group\_commit\_sync\_no\_delay\_count0binlog\_tr
Wesley13 Wesley13
3年前
MySQL主从复制异步原理以及搭建
MySQL主从复制的原理:  1、首先,MySQL主库在事务提交时会把数据变更作为时间events记录在二进制日志文件binlog中;MySQL主库上的sync\_binlog参数控制Binlog日志以什么样的方式刷新到磁盘上。  2、主库推送二进制日志文件Binlog中的事件到从库的中继日志RelayLog中,之后从库根据中继日志Rela
Wesley13 Wesley13
3年前
Mysql 数据可靠性机制
Mysql主要通过binlog跟redolog来保证数据的可靠性binlog的写入机制binlog的写入逻辑比较简单:事务执行过程中,先把日志写到binlogcache,事务提交的时候,再把binlogcache写到binlog文件中一个事务的binlog是不能被拆开的,因此不论这个事务多大,也要确保一
Wesley13 Wesley13
3年前
thinkphp 基本配置
12returnarray(34//定义数据库连接信息5'DB\_TYPE''mysql',//指定数据库是mysql67'DB\_HOST''localhost',89'DB\_NAME''uchome',//数据库名1011'DB\_USER''root
Wesley13 Wesley13
3年前
MySQL 5.7中sync_binlog参数和半同步中after_commit和after_sync的区别
导读作者:高鹏(重庆八怪)原文地址:https://www.jianshu.com/p/59c6ecb46fe5本文为我的一些零散记录供以后参考,但里面的部分问题经常会有朋友问到,翻以往的记录比较耗时,故干脆记录下来,但是水平有限都不深入,如有误导请见谅。为什么将这些问题放在一起讨论?主要是因为