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

如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

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

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

看不清楚,换张图片

免费获取短信验证码

如何区分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_commit";

innodb_flush_log_at_trx_commit:

0: 由mysql的main_thread每秒将存储引擎log buffer中的redo日志写入到log file,并调用文件系统的sync操作,将日志刷新到磁盘。

每次事务提交时,将存储引擎log buffer中的redo日志写入到log file,并调用文件系统的sync操作,将日志刷新到磁盘。

每次事务提交时,将存储引擎log buffer中的redo日志写入到log file,并由存储引擎的main_thread 每秒将日志刷新到磁盘。

show variables like "sync_binlog";

sync_binlog:

0 :存储引擎不进行binlog的刷新到磁盘,而由操作系统的文件系统控制缓存刷新。

每提交一次事务,存储引擎调用文件系统的sync操作进行一次缓存的刷新,这种方式最安全,但性能较低。

n:当提交的日志组=n时,存储引擎调用文件系统的sync操作进行一次缓存的刷新。

sync_binlog=0或sync_binlog大于1,事务被提交,而尚未同步到磁盘。因此,在电源故障或操作系统崩溃时有可能服务器已承诺尚未同步一些事务到二进制日志。因此它是不可能执行例行程序恢复这些事务,他们将会丢失二进制日志。

innodb_flush_log_at_trx_commit和sync_binlog 都为 1 时是最安全的,在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。但是鱼与熊掌不可兼得,双1,1 会导致频繁的io操作,因此该模式也是最慢的一种方式。

实际使用时,要考虑业务方对性能和安全性的需求,综合考量设置,两个参数。上图中是我们线上机器的参数。

以上就是如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog的详细内容,更多关于MySQL的innodb_flush_log_at_trx_commit和sync_binlog的资料请关注自学编程网其它相关文章!

免责声明:

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

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

如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog

下载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 CROSS JOIN 和 INNER JOIN?

我们只能根据连接谓词(即指定的条件)来区分 MySQL CROSS JOIN 和 INNER JOIN。在编写 INNER JOIN 查询时,我们需要指定条件,但相反,在编写 CROSS JOIN 查询时,我们不需要指定条件。为了理解它,我
2023-10-22

MySQL:分库分表与分区的区别和思考

一.分分合合 说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思想,思想是最重要的。当数据量大的时候,需要具有分的思想去细化粒度。当数据量太碎片的时候,需要具有合的思想来粗化粒度。 1.1 分 很多技术都运用了分的编程思想,这里来举几个例子,
MySQL:分库分表与分区的区别和思考
2017-07-09

mysql如何创建分区表

MySQL可以通过以下步骤来创建分区表:1. 创建一个普通的表,定义它的列和其他属性。2. 使用`ALTER TABLE`语句来添加分区规范。例如,`PARTITION BY RANGE`可以根据指定的列值范围来进行分区。3. 使用`PAR
2023-10-12

hive如何实现分区和分桶

这篇文章主要介绍hive如何实现分区和分桶,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、Hive分区表在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一
2023-06-19

MySQL中如何实现区分大小写的唯一性和不区分大小写的搜索?

借助以下两种方式,您可以实现区分大小写的唯一性和不区分大小写的搜索 -VARBINARY 数据类型_bin 排序规则VARBINARY 数据类型要使用 VARBINARY 数据类型,我们首先创建一个表。创建表的查询如下 -mysql> cr
2023-10-22

如何理解ADD和DROP分区

如何理解ADD和DROP分区,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。add和drop分区语法:ALTER TABLE t_pe_r ADD PARTITIO
2023-06-06

编程热搜

目录