暂无图片
MYSQL满日志中有大量的commit;怎么优化?
我来答
分享
暂无图片 匿名用户
MYSQL满日志中有大量的commit;怎么优化?

怎么优化?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
文成

慢查询日志中出现commit,就是因为事务提交(commit)的时间过长,可能有下面一些原因:

 1:磁盘IO过载时或者发生故障的时候,因此在事务完成时进行刷新(flush)需要很长时间。

  2:二进制日志轮换(Rotate)时,在二进制日志轮换完成之前,无法提交其他任何事务。这个会引起事务提交出现短暂的停顿/卡顿。尤其当二进制日志过大或者IO性能差的时候,这个停顿可能更长。导致commit的时间超过参数long_query_time的值。从而commit语句出现在慢查询日志。

    3: MySQL的系统参数innodb_flush_log_at_trx_commit、sync_binlog、max_binlog_size的设置可能会引起这种现象。但是注意,并不是说设这些参数的某个设置就一定会引起这个现象。而是说在某种取值下,在磁盘IO过载,业务暴增等一系列的综合因素影响下,会增加这种现象出现的概率。

       举个例子,将MySQL配置为sync_binlog = 0的情况下,这可能导致操作系统缓存整个二进制日志,甚至使用最快的磁盘。默认情况下,最大二进制日志大小为1G,如果所有日志均已缓存,则需要一些时间才能写出。 在这种情况下,没有其他事务可以提交。那么就可能出现commit耗时变长的情况。而如果将max_binlog_size设置小一些,那么就缓解这种情况。

    4:事务过大,导致事务提交的时候,需要等候的时间过长,尤其是发生二进制日志轮换时。


https://www.cnblogs.com/kerrycode/p/14171279.html

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


请输入正文
提交
相关推荐
请问各位大佬mysql杀会话问题。kill命令是不是只能杀前台会话?
回答 4
已采纳
什么叫前台会话?它kill就是终止一个线程啊,连接也断掉。如果用的是killquery则终止连接当前正在执行的语句,而保留连接不断。
如何把系统表空间迁移到自定义表空间?
回答 1
已采纳
你不是要迁移到系统表空间么,咋又要迁移出来了呢.官网都有的,你可以看下官网的DDL语法:https://dev.mysql.com/doc/refman/8.0/en/createtablespace
MySQL 有一张分区表,70亿数据,按日期来分区,想查指定日期的数据,怎么快速查出来?
回答 2
按照日期分区,是一天一分区?还是一月一分区,如果一天一分区那就按照分区查,分区全表扫描,不走索引。
MySQL数据库2003错误是什么意思?
回答 1
已采纳
https://blog.csdn.net/nayun123/article/details/117365013
mysql怎么像sqlserver那样使用print效果?
回答 1
在MySQL中,可以使用SELECT语句来输出打印内容。例如,以下代码可以输出“HelloWorld”:SELECT&x27;HelloWorld&x27;;
MariaDB的备份用xtrabackup工具能热备份吗?
回答 1
官方没有说支持mariadb,而且源码是依赖mysql的,估计是不支持mariadb了
PXC 可以多节点进行写入,MGR为什么不建议多节点写入?
回答 1
PXC一直都是可以多点进行读写,也没什么问题。那是没遇到过集群锁
mysql持久化参数后,配置文件的参数值会改变么
回答 4
已采纳
参数修改后会自动生成这个文件mysqldauto.cnf可以再确认下
mysql 数据恢复完了 怎么看恢复的完整性?
回答 4
查看表的数量,抽查表结构及数据行数关注重点查询语句,验证结果是否一致
旧版本支持新版本新功能么
回答 1
不能