首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看打开了多少个MySQL连接?

问如何查看打开了多少个MySQL连接?
EN

Stack Overflow用户
提问于 2011-06-28 13:38:25
回答 5查看 94.8K关注 0票数 46

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

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

但我只想确保mysql_connect不会开始一个新的。

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

在Apache中是否有任何设置,或者有什么方法可以将这些连接数记录在Apache或MySQL日志文件中?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-28 14:10:06

我认为有几种方法:

代码语言:javascript
复制
SHOW STATUS WHERE `variable_name` = 'Threads_connected'

或者,您可以执行SHOW PROCESSLIST并在Id列中找到惟一的值。在旧的PHP API mysql中,也有与SHOW PROCESSLIST相同的mysql_list_processes函数。

但是第一个应该对你有效。也许你想看看其他的STATUS variables

票数 65
EN

Stack Overflow用户

发布于 2015-05-06 21:30:31

关于连接还有其他有用的变量,在您的特定情况下,变量Connections可能有助于确定您的代码是否建立了太多的连接。只需在运行代码之前和之后检查它的值。

代码语言:javascript
复制
# 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    |
+-------------------+-------+

  • Connections

尝试连接MySQL服务器的次数(成功或失败)。

  • Threads_cached

线程缓存中的线程数。

  • Threads_connected

当前打开的connections.的数量

  • Threads_created

为处理连接而创建的线程数。如果Threads_created很大,您可能需要增加thread_cache_size值。缓存未命中率可以计算为Threads_created/Connections.

  • Threads_running

未处于休眠状态的线程数。

票数 41
EN

Stack Overflow用户

发布于 2013-12-25 12:56:18

当前连接状态:

代码语言:javascript
复制
mysqladmin status

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

代码语言:javascript
复制
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 processlist与show full processlist类似。

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

代码语言:javascript
复制
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
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6502036

复制
相关文章

相似问题

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