我怎样才能看到有多lessMySQL连接打开?

如何通过在Apache上运行的PHP中的mysql_connect来查看在当前请求期间打开了多less个连接?

我知道,如果我用相同的参数调用mysql_connect函数100次,它将始终返回相同的连接链接。 一旦连接已经存在,它将不会启动新的连接。

但我只是想确保mysql_connect没有启动一个新的。

我正在使用一个包含许多mysql_connect函数调用的遗留系统。

有没有在Apache的任何设置,或者有什么办法我可以在Apache或MySQL日志文件中logging这个连接数量?

我认为有几种方法:

 SHOW STATUS WHERE `variable_name` = 'Threads_connected' 

或者您可以做一个SHOW PROCESSLIST并在Id列中find唯一的值。 在旧的PHP API mysql ,有与SHOW PROCESSLIST一样的mysql_list_processes函数。

但是第一个应该为你工作。 也许你可能想检查其他的状态variables

还有其他有用的variables有关连接,并在您的特定情况下variablesConnections可能会帮助找出您的代码是否连接太多。 运行代码之前和之后只需检查它的值。

 # mysql -e 'SHOW STATUS WHERE variable_name LIKE "Threads_%" OR variable_name = "Connections"' +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Connections | 22742 | | Threads_cached | 1 | | Threads_connected | 87 | | Threads_created | 549 | | Threads_running | 51 | +-------------------+-------+ 
  • 连接

    连接尝试(成功与否)到MySQL服务器的数量。

  • Threads_cached

    线程caching中的线程数。

  • threads_connected的

    当前打开的连接数量。

  • 由Threads_created

    为处理连接而创build的线程数。 如果Threads_created很大,则可能需要增加thread_cache_size的值。 高速caching未命中率可以计算为Threads_created / Connections。

  • Threads_running

    未睡眠的线程数。

当前连接状态:

 mysqladmin status 

Threads:计数。 有关当前连接的更多详细信息可以使用以下命令获得:

 user@host:~$ mysqladmin -uroot -ppass extended-status | grep Threads | Threads_cached | 0 | | Threads_connected | 3 | | Threads_created | 3 | | Threads_running | 1 | user@host:~$ mysqladmin -uroot -ppass processlist +----+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+------------------+ | 53 | root | localhost | | Sleep | 258 | | | | 54 | root | localhost | | Sleep | 253 | | | | 58 | root | localhost | | Query | 0 | | show processlist | +----+------+-----------+----+---------+------+-------+------------------+ 

仅供参考 mysqladmin -v -uroot -ppass processlistshow full processlist模拟。

命令可以缩写为任何唯一的前缀,并同时调用:

 user@host:~$ mysqladmin -v -uroot -ppass proc stat +----+------+-----------+----+---------+------+-------+-----------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+-----------------------+ | 53 | root | localhost | | Sleep | 951 | | | | 54 | root | localhost | | Sleep | 946 | | | | 65 | root | localhost | | Query | 0 | | show full processlist | +----+------+-----------+----+---------+------+-------+-----------------------+ Uptime: 1675 Threads: 3 Questions: 171 Slow queries: 0 Opens: 235 Flush tables: 1 Open tables: 57 Queries per second avg: 0.102 

您可以使用MySQL命令show processlist来获取连接数。

我不认为你可以看到连接的数量,但可以限制连接到MySQL服务器。