zoukankan      html  css  js  c++  java
  • sync_binlog

    sync_binlog
    MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。虽然binlog也有binlog cache,但是MySQL并没有控制binlog cache同步到文件系统缓存的相关考虑。所以我们这里不涉及binlog cache。

    默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。

    如果sync_binlog>0,表示每sync_binlog次事务提交,MySQL调用文件系统的刷新操作将缓存刷下去。最安全的就是sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去。这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据。但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交,同样很大的影响MySQL和IO性能。虽然可以通过group commit的补丁缓解,但是刷新的频率过高对IO的影响也非常大。

    所以很多MySQL DBA设置的sync_binlog并不是最安全的1,而是100或者是0。这样牺牲一定的一致性,可以获得更高的并发和性能。

  • 相关阅读:
    C#连接Oracle数据库的连接字符串
    Oracle
    SQL 计算某月有多少天
    七牛开发者文档中心
    ocrstyle
    Linux的sys接口和proc接口创建
    BusHelper
    MeiTuanLocateCity
    Shop
    Win10预览版10162全新安装及激活全过程图解
  • 原文地址:https://www.cnblogs.com/xiaoit/p/4514318.html
Copyright © 2011-2022 走看看