暂无图片
innodb_flush_log_at_trx_commit=0 存在的意义是什么?
我来答
分享
chengang
2021-09-24
innodb_flush_log_at_trx_commit=0 存在的意义是什么?

innodb_flush_log_at_trx_commit = 0
代表每次提交写入MySQL log buffer 然后再每秒刷到磁盘上
innodb_flush_log_at_trx_commit = 1
代表每次提交写入 os cache,然后再每秒刷到磁盘上

=0 是应用级保障,如果应用crash了则最多可能丢一秒
=1 是os级保障,如果OS crash了。则最多可能丟一秒

1、从mysql的缓存到os的缓存都是内存交换,应该很快。所以刷到OS cache也应该不会影响性能吧。
2、大概率我们生产环境,mysql也会独占服务器,或者说服务器上除了mysql一个重应用之外,不会再有重应用。 那么就不会存在 os忙其它事,处理不过来mysql请求的问题。

so…基于上述我的认知。那么innodb_flush_log_at_trx_commit=0 在哪些场景才用呢。而不能用 =2?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
薛晓刚

总有极端。我也认为哪里那么巧正好断电?
我就遇到过一次,不是这个参数,而是sync_binlog。也是0 1 2这种。那个值写了16.结果就是binlog不全。奇葩吧。
理论如果没有极端问题,都不用写日志。但是就是每个事务都考虑的是极端问题,才有了日志。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
chengang
题主
2021-09-24
为什么需要用到 = 0这种情况。我认为完全可以用 = 2 代替=0的情况。
chengang

=1写错了,是=2

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL Group Replication能保证强一致性吗
回答 1
已采纳
MGR基于Paxos协议,多个节点之间强同步的高可用方案,但多个节点的强一致性是保证了最终一致性,在平常的各节点复制中还是异步的。https://www.modb.pro/db/100467
MySQL的约束有哪些?
回答 5
已采纳
NOTNULL:约束字段的内容一定不能为NULL。UNIQUE:约束字段唯一性,一个表允许有多个Unique约束。PRIMARYKEY:约束字段唯一,不可重复,一个表只允许存在一个。FOREIGNKE
怎么查MySQL内存用量,使用量?
回答 2
已采纳
全局内存设置SELECTROUND(@@keybuffersize/1024/1024,2)asKEYBUFMB,ROUND(@@innodbbufferpoolsize/1024/1024,2)as
搭建mysqlCluster,在增加节点的时候没有clone模式,只能选择增量覆盖 ,我是用的mysql5.7
回答 1
你确定你里面贴的图是你的在MySQL5.7上搞的吗?MySQL克隆是在8.0.17之后才有的,需要安装mysqlclone.so插件,之前都是通过全量备份或者copy的方式整的。
求问:mysql的并发量是多少?怎么看? 以mysql8.0以后的版本为准(我目前用的是8.0.18), 基于innodb引擎
回答 1
可参考;
mysql怎么像sqlserver那样使用print效果?
回答 1
在MySQL中,可以使用SELECT语句来输出打印内容。例如,以下代码可以输出“HelloWorld”:SELECT&x27;HelloWorld&x27;;
Ubuntu16.04 安装 mysql 时出现包含问题怎么办?
回答 1
具体什么问题,你要说。否则谁知道?
MySQL 用什么方法可以判断是什么程序在扫描磁盘?
回答 1
已采纳
yuminstalliotopiotop
mysql数据库中如何才能实现分组内排序?
回答 1
已采纳
SELECTid,sl1,rankFROM(SELECTt.,IF(@pid,@r:@r1,@r:1)ASrank,@p:idFROMt,(SELECT@p:NULL,@r:0)rORDERBYid)
mysql 表的操作日志怎么查看?
回答 1
使用mysqlbinlog查看生成的binlog日志 mysqlbinlogv vbase64outputdecoderows