MySQLsync - binlog innodb - flush - log - at - trx - commit 浅析
更新时间:2024-01-23 21:24:01 阅读量: 教育文库 文档下载
- mysql索引推荐度:
- 相关推荐
【MySQL】sync_binlog innodb_flush_log_at_trx_commit 浅析 2013-12-12
23:04:07 分类: MySQL
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数。本文从参数含义,性能,安全角度阐述两个参数为不同的值时对db 性能,数据的影响.
一 参数意义
innodb_flush_log_at_trx_commit
如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。 注意:
由于进程调度策略问题,这个“每秒执行一次 flush(刷到磁盘)操作”并不是保证100%的“每秒”。
sync_binlog
sync_binlog 的默认值是0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。
当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。注:
如果启用了autocommit,那么每一个语句statement就会有一次写操作;否则每个事务对应一个写操作。
根据上述描述,我做了一张图,可以方便大家查看。
二 性能
两个参数在不同值时对db的纯写入的影响表现如下:
测试场景1 TPS 41000 33000 26000 33000 innodb_flush_log_at_trx_commit=2 sync_binlog=1000 测试场景2 innodb_flush_log_at_trx_commit=1 sync_binlog=1000 测试场景3 innodb_flush_log_at_trx_commit=1 sync_binlog=1 测试场景4 innodb_flush_log_at_trx_commit=1 sync_binlog=1000 测试场景5 innodb_flush_log_at_trx_commit=2 sync_binlog=1000 场景 场景1 场景2 场景3 场景4 由此可见,当两个参数设置为双1的时候,写入性能最差,sync_binlog=N (N>1 ) innodb_flush_log_at_trx_commit=2 时,(在当前模式下)MySQL的写操作才能达到最高性能。 三 安全 当innodb_flush_log_at_trx_commit和sync_binlog 都为 1 时是最安全的,在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。但是鱼与熊掌不可兼得,双11 会导致频繁的io操作,因此该模式也是最慢的一种方式。
当innodb_flush_log_at_trx_commit设置为0,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
当innodb_flush_log_at_trx_commit设置为2,只有在操作系统崩溃或者系统掉电的情况下,上一秒钟所有事务数据才可能丢失。
双1适合数据安全性要求非常高,而且磁盘IO写能力足够支持业务,比如订单,交易,充值,支付消费系统。双1模式下,当磁盘IO无法满足业务需求时 比如11.11 活动的压力。推荐的做法是 innodb_flush_log_at_trx_commit=2 ,sync_binlog=N (N为500 或1000) 且使用带蓄电池后备电源的缓存cache,防止系统断电异常。
四 小结
系统性能和数据安全是业务系统高可用稳定的必要因素。我们对系统的优化需要寻找一个平衡点,合适的才是最好的,根据不
同的业务场景需求,可以将两个参数做组合调整,以便是db系统的性能达到最优化。
正在阅读:
MySQLsync - binlog innodb - flush - log - at - trx - commit 浅析01-23
成功法则02-18
送朋友冬天祝福语02-22
党员评议会议记录05-21
职场生存法则:傻人有傻福04-25
朋友结婚祝福语大全04-12
长寿法则11-05
朋友女儿结婚祝福语02-24
王永庆法则02-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 浅析
- MySQLsync
- binlog
- innodb
- commit
- flush
- log
- trx
- 2010年中级社工师综合能力真题
- 椭圆周长公式的推导、证明、检验、评价与应用
- WINCC报警变量记录数据查询方法
- 南京信息工程大学海洋科学学院2014年博士后招聘启事
- 沪教版二年级第一学期语文词语表带拼音
- 《弱电解质的电离》教学设计(全国优质课获奖案例)
- 第二章 业务开单 风暴后台说明书 药店需要
- 3014207191 廖舒琅-化工原理课设 - 图文
- 年产2465万吨甲醛生产工艺设计毕业论文设计
- 跨越百年的美丽导学案教师用
- 文字报告
- 模拟电路考试试题和答案(长沙理工大学)
- 利奈唑胺副作用病例报告
- 担保还款协议书
- 基督教聚会点承诺书
- 电路原理一复习资料
- 平煤股份安全高效矿井建设工作座谈会材料
- 质量管理手册20160126 - 图文
- 三级 助理人力资源管理师计算题复习汇总 - 图文
- 2012-2013学年山东省德州市乐陵一中高二10月月考语文试题