MySQL会为每个二进制日志_MySQL二进制日志优化

1.server-id=ID

服务的唯一ID

2.log_bin=/mydata/binlog/mysql-bin

二进制日志的位置和命名方式

3.binlog_format={ROW|STATEMENT|MIXD}

ROW格式:记录数据更新的每一行数据的变更.当遇到alter,update整个字段的是值这样的语句,会使得二进制日志的文件庞大无比.影响了系统的IO性能.但是会保证数据的一致性.

STATEMENT格式:记录的只是导致数据变更的更新语句.但是有可能导致数据不一致.

MIXD:两种格式的混合.

4.binlog_cache_size

全局变量

在事务过程中,用来保存SQL语句的缓存大小.使用二进制日志的缓存前提是MYSQL服务器采用了支持事务的存储引擎,并且开启了log_bin日志.该参数会为每个客户端连接分配binlog_cache_size大小得缓存.

若用户频繁使用多语句的事务的情况下,可以增大binlog_cache_size的大小.

查看binlog_cache_size是否合理mysql> show status like ‘binlog%‘;

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| Binlog_cache_disk_use      | 1     |

| Binlog_cache_use           | 33    |

+----------------------------+-------+

binlog_cache_use:使用二进制日志缓存的事务数量

binlog_cache_disk_use:使用二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句的事务数量

两种情况:

(1)业务不存在大事务()

binlog_cache_size=1M

(2)业务不存在小事务(2M-4M)

binlog_cache_size=2M

5.sync_binlog={0|n}

0:表示事务提交后,不会立即将binlog_cache中的数据刷新到磁盘上.刷新时间是由文件系统自身更新,或者binlog_cache饱和了,才会将cache中的数据刷到磁盘上.

n:表示事务提交n次后,才会将binlog_cache中的数据刷新到磁盘上.该值设置为1最安全,因为最坏情况,值会丢一个事务.

6.max_binlog_size

二进制日志文件的最大容量.一般为512M或者1G.

7.binlog_do_db

设置哪些数据库需要记录到binlog.只在master上配置.

8.binlog_ignore_db

哪些数据库不需要记录binlog.只在master上配置.

9.replicate_do_db

设置哪些数据库需要同步binlog,若有多个数据库,请用逗号(,)隔开,只在slave上配置.

10.replicate_ignore_db

设置哪些数据库不需要同步binlog,若有多个数据库,请用逗号(,)隔开.只在slave上配置.

11.expire_logs_days

二进制日志缓存最长时间

本文出自 “不求最好,只求更好” 博客,请务必保留此出处http://yujianglei.blog.51cto.com/7215578/1727972

MySQL二进制日志优化

标签:binlog mysql

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://yujianglei.blog.51cto.com/7215578/1727972

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值