为什么MySQL中有太多连接

时间:2012-12-29 14:04:15

标签: php mysql cakephp connection

最近我发现我的MySQL数据库中有太多连接:

mysql> show status like 'Conn%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 39    |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show full processlist;
+----+-------+-----------+--------+---------+------+-------+-----------------------+
| Id | User  | Host      | db     | Command | Time | State | Info                  |
+----+-------+-----------+--------+---------+------+-------+-----------------------+
| 38 | enrmr | localhost | cakedb | Query   |    0 | NULL  | show full processlist |
+----+-------+-----------+--------+---------+------+-------+-----------------------+

我最近安装了CakePHP,每次刷新主页面(F5)时,连接数都会增加一个。 另外如果我再次重启mysql连接数仍然是39。

我的netstat输出

netstat -n -a | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               ESCUCHAR   

我想我有'mysql zombies connections'之类的东西。我怎么能杀了他们?我每次刷新网页时如何阻止新连接的创建? (我可以只有一个连接吗?) 感谢。

1 个答案:

答案 0 :(得分:7)

首先,Connections是增量计数器,它不是当前连接。它是MySQL实例建立和/或关闭的连接总数。

如果您想要当前连接,请查看Threads_connected,而不是Connections

其次,39个连接并不多,即使它是连接线程的总数。这完全取决于应用程序,尽管只有一个CakePHP实例可能只使用一个线程。