首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接池与max_connection关系

连接池与max_connection关系
EN

Stack Overflow用户
提问于 2015-04-08 04:00:53
回答 1查看 281关注 0票数 1

我正在使用MySQL数据库,并有一个C#应用程序,其中有并行线程运行查询。在启用连接池时,如MySQL,Workbench 3-5连接线程继续在池中使用(其中大多数线程处于休眠状态)。当连接池最多禁用1个时,连接线程将被快速创建和终止。

现在我的问题是,当启用连接池时,它会在每个运行的C#应用程序中创建3到5个连续连接线程。因此,如果max_connection设置在MySQL中为151个,我只能运行30个C#应用程序实例,对吗?

另外,如果我以牺牲性能为代价禁用连接池,我将能够运行我的C#应用程序的151个实例,因为很少有C#应用程序会并行地生成查询。我这个假设是对的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 23:33:21

在通过Web Server (Apache、Tomcat、IIS等)运行时,您将取决于它可能运行的线程数量。(Apache有MaxClients。)

所有操作的单一连接是编写程序的“正常”方式。但是你有3-5个“线程”,每个线程都有自己的连接?如果是,则限制在大约30个Web服务器线程(或程序的独立调用)。

max_connections可以增加(通过更改my.cnf和重新启动)。2000年是高的,但不是不合理的。

当你有超过几十个连接实际上在做一些事情时,问题就出现了,而不是“睡眠”。(见SHOW PROCESSLIST;)

MySQL连接相当快速;“池”还有其他问题,因此它不一定会带来更多的好处而不是伤害。连接具有"state",包括@变量、tmp表等,需要在请求连接时重新设置,并且它来自“池”。

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

https://stackoverflow.com/questions/29505692

复制
相关文章

相似问题

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