0%

mysql事务日志分析

java操作mysql过程中,发现部分操作耗时是在事务过程中的,可以通过以下方法来进行定位。

1
2
3
4
5
6
-- 查看日志是否开启
show variables like 'general_log';
-- 开启日志
set global general_log=on;
--查看通用日志位置
show variables like '%general_log_file%'

通过监控日志详情,发现事务过程中有大量的select @@SESSION.'tx_read_only'指令伴随事务在执行。

通过配置mysql连接,加入参数useLocalSessionState=true得到解决。

详细代码栈:

1
ConnectionImpl.isReadOnly