我在java应用程序上运行负载测试,该应用程序在DAO层使用hibernate框架。我在慢查询日志中发现了几次跟随。
# Time: 170704 15:06:47
# User@Host: user[user] @ localhost [127.0.0.1] Id: 163
# Query_time: 0.428159 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
SET timestamp=1499161007;
commit;
我在Cent OS上使用mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
。
EhCache已被用作某些实体的hibernate缓存提供程序。我在我的应用程序中使用3GB inno_db_buffer_pool_size
用于199.6MB数据库和32-64个池化mysql连接。此外,服务器具有16GB的总RAM,应用程序JVM配置为使用4GB堆。
我发现2007年写的this文章。我不确定hibernate是否涉及调用NOW()或导致我的案例中的任何其他问题。任何类似的东西都没有在代码中明确地完成。有关此日志行的根本原因的任何想法吗?
答案 0 :(得分:1)
根据this stackoverflow question commit;
语句是在慢查询日志中成为此记录的原因。在获取统计详细信息之前已执行SET timestamp=1499161007;
。
我还需要查找在需要很长时间才能提交的事务中执行了哪些查询。深入挖掘我发现mysql查询日志和此问题中提供的suggestions可以使用。