Grails MySql processList

时间:2009-07-13 08:05:08

标签: mysql grails

我有一个带有webflow的grails应用程序。我将感兴趣的内部流对象存储在转换范围中。进入和离开流程几次后,我看到连接到DB(MySql)的单个用户在MySql Server上生成了许多未释放的线程。 mysql中的进程列表向我显示处于休眠模式的线程,客户端上的netstat显示我与mysql服务器建立的连接。 我假设连接保持活动状态而不是释放。但那是为什么呢?进入和离开流时,grails到底做了什么?为什么这么多连接被打开而没有关闭?

任何帮助都将不胜感激。

的问候, masiar

2 个答案:

答案 0 :(得分:0)

Grails使用hibernate,而hibernate又使用连接池;这些是空闲连接,等待流量。

您可以在https://www.hibernate.org/214.html

了解有关Hibernate连接池的更多信息

这实际上是理想的行为;打开一个新连接可能需要花费不可忽视的时间,比在开放时发送查询所花费的时间多得多。

“过早优化是所有邪恶的根源” - 除非您看到与数据库相关的性能问题,否则我不会理会这一点。

答案 1 :(得分:0)

将hibernate池化为一个稳定的,准备好的汽车池,让你或你的朋友随时都可以开启它们的引擎,然后前往你想要的任何地方...,不,不要去数据库。在你开始运行之前,无需等待出租车或开始自己开车......这里一切都很好

只要需要,对话就是要坚持下去。通常你会深入到工作流程中,一旦完成它们,你就会回到旧的,因此仍然活着的对话中。就像那样......在这里一切都很好