我正在对在 DAO 层中使用 hibernate 框架的 Java 应用程序运行负载测试。我在慢查询日志中发现了好几处 following。
# 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,用于使用 readline 5.1 的 redhat-linux-gnu (x86_64)
。
EhCache 已被用作某些实体的 hibernate 缓存提供程序。我在我的应用程序中使用 3GB inno_db_buffer_pool_size
用于 199.6MB 数据库和 32-64 个池化 mysql 连接。此外,服务器有 16GB 的总 RAM,应用程序 JVM 配置为使用 4GB 堆。
我找到了 this文章写于 2007 年。我不确定 hibernate 是否涉及调用 NOW() 或任何其他导致我的案例采取行动的问题。任何类似的事情都没有在代码中明确地完成。知道此日志行的根本原因吗?
最佳答案
根据 this stackoverflow question commit;
语句是慢查询日志中有这条记录的原因。 SET timestamp=1499161007;
已在获取统计详细信息之前执行。
我还需要找出在花费很长时间提交的事务中执行了哪些查询。深入挖掘,我发现了 mysql 查询日志和 suggestions可以使用此问题中提供的内容。
关于Mysql、hibernate slow_query_log日志设置时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44903718/