千家信息网

mysql怎么避免长事务

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下mysql怎么避免长事务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、确认是否使用了set autocommit=0。这个确认工作可以在测试环境中开展,把 My
千家信息网最后更新 2026年11月03日mysql怎么避免长事务

小编给大家分享一下mysql怎么避免长事务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1、确认是否使用了set autocommit=0。

这个确认工作可以在测试环境中开展,把 MySQL 的 general_log 开起来,然后随便跑一个业务逻辑,通过 general_log 的日志来确认。

2、确认是否有不必要的只读事务。

有些框架会习惯不管什么语句先用 begin/commit 框起来。有些是业务并没有这个需要,但是也把好几个 select 语句放到了事务中。这种只读事务可以去掉。

3、业务连接数据库的时候,控制每个语句执行的最长时间,避免单个语句意外执行太长时间。

实例

#!/bin/bash mysql -N -h227.0.0.1 -userver_234 -pserver_234 -P8002 -e "select now(),(unix_timestamp(now()) - unix_timestamp(a.trx_started)) diff_sec,b.id,b.user,b.host,b.db,d.sql_text from information_schema.innodb_trx a inner joininformation_schema.processlist bon a.trx_mysql_thread_id=b.id and b.command = 'sleep'inner join performance_schema.threads c on b.id = c.processlist_idinner join performance_schema.events_statements_current d on d.thread_id = c.thread_id;" | while read a b c d e f g hdoif [ "$c" -gt 30 ]thenecho $(date +"%y-%m-%d %h:%m:%s")echo "processid[$d] $e@$f in db[$g] hold transaction time $c sql:$h"fidone >> /tmp/longtransaction.txt

看完了这篇文章,相信你对"mysql怎么避免长事务"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

事务 语句 业务 篇文章 最长 意外 单个 完了 实例 数据 数据库 日志 时候 时间 更多 框架 环境 知识 行业 资讯 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 互联网与科技金融数据 与互联网科技公司 未来的互联网科技 奇酷互联网络科技公司 友谊互联网络科技 互联网科技视频素材 深圳互联网科技怎么样 创业天下互联网科技有限公司 上海宁丞科技互联网 移动互联网科技公司 玉溪互联网科技怎么选 互联网科技扶贫时间 济南有互联网科技公司吗 恒生互联网科技业指数调整周期 无锡工业互联网科技有限公司 富国互联网金融科技混合基金 易企秀互联网科技是做什么的 盐城市攀科互联网科技有限公司 北京品多多互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 万易互联网科技有限公司 广州宏创互联网科技 广州互联网络科技有限公司 互联网科技logo 盛创互联网科技有限公司 晋城互联网科技 互联网营销推广黑科技 美国五大互联网科技公司市值多少 高科技和互联网的现代国家
0