首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >httpd上没有用户的MySQL数据库上的多个连接

问httpd上没有用户的MySQL数据库上的多个连接
EN

Database Administration用户
提问于 2013-10-16 15:52:32
回答 2查看 1.9K关注 0票数 1

尽管httpd上没有用户,但我的数据库似乎有许多打开的连接。

代码语言:javascript
复制
mysql> SHOW PROCESSLIST;
+-------+----------+--------------------+---------------------+---------+------+-------+------------------+
| Id    | User     | Host               | db                  | Command | Time | State | Info             |
+-------+----------+--------------------+---------------------+---------+------+-------+------------------+
| 22865 | rdsadmin | localhost:51066    | mysql               | Sleep   |    8 |       | NULL             |
| 25098 | ubuntu   | 123.45.67.89:48060 | database_name_here! | Sleep   |  350 |       | NULL             |
| 25099 | ubuntu   | 123.45.67.89:48069 | database_name_here! | Sleep   | 3731 |       | NULL             |
| 25126 | ubuntu   | 123.45.67.89:49558 | database_name_here! | Sleep   |  349 |       | NULL             |
| 25161 | ubuntu   | 123.45.67.89:50770 | database_name_here! | Sleep   |  289 |       | NULL             |
| 26583 | ubuntu   | 123.45.67.89:37593 | database_name_here! | Sleep   | 4550 |       | NULL             |
| 29729 | ubuntu   | 123.45.67.89:49280 | database_name_here! | Sleep   |  953 |       | NULL             |
| 29737 | ubuntu   | 123.45.67.89:49489 | database_name_here! | Sleep   |  953 |       | NULL             |
| 29738 | ubuntu   | 123.45.67.89:49490 | database_name_here! | Sleep   |  349 |       | NULL             |
| 29755 | ubuntu   | 123.45.67.89:50674 | database_name_here! | Sleep   | 2751 |       | NULL             |
| 29759 | ubuntu   | 123.45.67.89:50892 | database_name_here! | Sleep   |  600 |       | NULL             |
| 35600 | ubuntu   | 123.45.67.89:49677 | NULL                | Query   |    0 | NULL  | SHOW PROCESSLIST |
+-------+----------+--------------------+---------------------+---------+------+-------+------------------+

我不明白怎么会有这么多联系。我使用的是带有RDS的amazon,带有PDO的apache/mysql/ EC2。我有持久的连接"on",但我认为这只是缓存连接。似乎有10个连接始终保持开放,即使在任何时候我的网站上有1-2个用户。

造成这种情况的原因是什么,我该如何解决?这是正常的行为吗,是否有一个最小数量的连接,MySQL保持开放以处理不同的用户?我似乎找不到任何关于如何分析正在发生的事情的信息。

EN

回答 2

Database Administration用户

发布于 2013-10-16 22:00:22

您需要了解如何在PHP web应用程序中配置连接池。即使是一个功能齐全的连接池,即使没有使用,到数据库的许多连接也经常保持打开状态。对于web应用程序来说,打开到数据库的连接可能非常昂贵,让一些未使用的连接坐在一起是有意义的。

大多数连接池都有如下设置:

  • 保持打开的最小连接数
  • 保持打开的最大连接数
  • 当需要新连接时要打开的连接数

也有可能你的web应用程序没有正确地释放连接回连接池。当连接完成后,您需要关闭它们,让池知道它们是可用的。不这样做是一种资源泄漏,最终会耗尽连接。

票数 1
EN

Database Administration用户

发布于 2013-10-17 11:08:36

您可以看到该命令=“睡眠”--这些指示服务器的连接线程处于空闲状态,并且正在等待客户端向其发送新语句。

你不用担心。确保max_connections值超过默认值,并且应用程序在其内部操作后关闭连接。

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

https://dba.stackexchange.com/questions/51615

复制
相关文章

相似问题

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