首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C3P0连接池与MySQL连接池

问C3P0连接池与MySQL连接池
EN

Stack Overflow用户
提问于 2013-08-18 00:07:32
回答 1查看 547关注 0票数 3

我对连接池有点困惑。我在MySQL数据库上使用Hibernate。Hibernate的连接池策略由c3p0决定。

Hibernate的连接池大小与MySQL的连接池大小之间有什么关系?

运行Hibernate的代码可以缩放为AWS上的多个实例(因此n#实例,每个实例的Hibernate连接池大小为m)。然而,所有实例都与一个RDS MySQL实例对话,该实例本身具有连接池大小q。

这是否意味着,如果存在n*m活动连接和n*m>q,则在MySQL的队列中将需要等待连接?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-15 16:29:00

您的问题是“Hibernate的连接池大小与MySQL的连接池大小”。要记住的重要区别是:

  • 连接池是应用程序概念,而不是数据库概念。应用程序使用的连接池(即Hibernate)只是一种加速与数据库通信的方法。由于建立每个连接的速度相对较慢,因此预先建立一组连接,然后让应用程序根据需要使用它们,效率更高。
  • 另一方面,数据库没有池连接。相反,它允许客户端根据请求最多建立连接(例如,max_connections参数在MySQL中)。如果客户端请求连接,而数据库已经达到最大值,那么就会出现连接误差。

因此,要回答您的问题,如果您将应用程序连接池配置为预先建立比数据库所允许的更多的连接,您将从MySQL中得到一个“太多连接”错误。可以通过提高MySQL配置参数或调整每个实例的c3p0最大池大小来避免这种情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18294485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档