我在使用 Hibernate/MySQL 时遇到一个奇怪的问题,数据库被锁定并完全阻止所有查询。 show processlist
表示如下:https://gist.github.com/knyttl/aec84d0abfc3f5fcd921
这么简单的查询竟然能锁定表,我觉得很奇怪。尤其是当交易与 native 查询一样短时。
我觉得特别奇怪的是它阻止了所有表上的所有其他查询。
最佳答案
如果有任何锁定的表,您会在进程列表中看到 Locked
状态。
这样简单的查询就会运行,并在其事务结束时释放锁。
在您的情况下,我怀疑您在完成数据库连接后没有关闭它们。这可以解释为什么数据库似乎被阻止了。数据库可能没问题,但连接已经分配,因此您无法获取新连接。
关于java - Hibernate 通过一个查询锁定 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250973/