我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用

这篇文章主要介绍了mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

sync_binlog:

其值默认为0,范围为0~4294967295(mysql 5.6)
〇 为0时,即mysqld不去控制磁盘的同步,而是等待操作系统的fdatasync从内存flush到磁盘。(与操作系统同步)。在复制结构中,dump线程会在flush阶段进行binlog传输。
〇 最安全的设置为1,在开启了autocommit的情况下,如果mysqld或者os此时crash掉,会至多遗失一个事务。(同时也是最慢的设置)。在复制结构中,dump线程会在sync阶段进行binlog传输。
〇 当值为范围内其他值时,如100,即意味着mysql在写100次binlog时,再将缓存刷到磁盘。在复制结构中,dump线程会在flush阶段进行binlog传输。

将该值设置为稍大的情况下,可以提高tps,并且需要使用battery-backed cache防止异常断电。




innodb_flush_log_at_trx_commit:
(控制REDO log刷盘策略)
其默认值为1,其他可取值为0和2。
〇 当为1时,每个事务提交,将会使log buffer的内容写到log file中,同时将被flush到磁盘,这也是最安全的做法。可以完全遵从ACID。(the contents of the InnoDB log buffer are written out to the log file at each transaction commit and the log file is flushed to disk.)
〇 当为0时,每个事务提交,会写入mysqld自己的log buffer中,每隔1秒将log buffer的内容写到log file中,然后flush到磁盘。
〇 当为2时,每个事务提交,就会被写到log file(OS cache),但是log file每隔1秒才会被flush到磁盘,当操作系统crash或断电时,此时至多丢失1秒的事务。


0和2的区别是,
为0时,mysqld或操作系统crash则会导致1秒内的事务被丢失。
为2时,当操作系统crash或断电会导致1秒内的事务被丢失。

性能而言(由快至慢):
0>2>1
安全性而言(由好至差):
1>2>0
mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用
感谢你能够认真阅读完这篇文章,希望小编分享的“mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中sync_binlog和innodb_flush_log_at_trx_commit怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog

innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL磁盘写入策略以及数据安全性的关键参数。 show variables like "innodb_flush_log_at_trx
2022-05-23

Mysql中@和@@符号怎么使用

本篇内容主要讲解“Mysql中@和@@符号怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql中@和@@符号怎么使用”吧!一、概述@是用户变量,@@是系统变量。select @a;变
2023-06-30

MySQL中insert和update怎么使用

在MySQL中,INSERT语句用于向表中插入新的行,UPDATE语句用于更新表中已有行的数据。INSERT语句示例:INSERT INTO table_name (column1, column2, column3)VALUES (va
MySQL中insert和update怎么使用
2024-05-15

mysql中timestamp和datetime怎么使用

在MySQL中,timestamp和datetime都是用来存储日期和时间的数据类型,但它们在存储和使用上有一些区别。datetime类型:格式为’YYYY-MM-DD HH:MM:SS’,范围为’1000-01-01 00:00:00’到
mysql中timestamp和datetime怎么使用
2024-04-17

mysql中distinct和count怎么使用

在MySQL中,DISTINCT和COUNT是两个不同的功能,分别用于去除重复值和计算行的数量。使用DISTINCT去除重复值:SELECT DISTINCT column_name FROM table_name;这条语句将从表中选取指定
mysql中distinct和count怎么使用
2024-04-09

mysql中offset和limit怎么使用

在MySQL中,OFFSET和LIMIT用于分页查询数据,其中LIMIT用于指定返回记录的数量,OFFSET用于指定从第几条记录开始返回。例如,要查询从第6条记录开始的10条记录,可以使用以下SQL语句:SELECT * FROM ta
mysql中offset和limit怎么使用
2024-04-12

mysql中update和select怎么结合使用

在MySQL中,可以使用SELECT语句来检索要更新的数据,然后将结果用于UPDATE语句中更新表中的记录。例如,假设我们有一个名为users的表,其中包含id、name和age字段。如果我们想将所有年龄大于30岁的用户的年龄增加1岁,我
mysql中update和select怎么结合使用
2024-04-09

MySql中的IFNULL、NULLIF和ISNULL怎么使用

这篇文章主要介绍“MySql中的IFNULL、NULLIF和ISNULL怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySql中的IFNULL、NULLIF和ISNULL怎么使用”文章能帮
2023-07-05

编程热搜

目录