【问题标题】:MySQL Client ConnectionMySQL 客户端连接
【发布时间】:2018-10-10 14:58:59
【问题描述】:

我有一个关于 MySQL Workbench Client Connections 窗口的非常基本的问题。在该窗口中显示了一个命令列和一个时间列。如果命令列的值为睡眠并且时间列的值非常大(比如 1500),是否这意味着客户端连接对象已经有一段时间没有使用了?还有“已连接的线程”、“正在运行的线程”、“总连接数”等是什么意思?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    客户端连接实时示例 MySQL Workbench 截图如下所示:

    它基本上利用了SHOW PROCESSLIST 命令的输出。

    • 命令列:它基本上暗示了特定连接线程中发生的操作类型。在示例屏幕截图中:Sleep 表示线程已连接,但目前尚未触发任何查询。 Query 表示正在执行查询。这就是为什么我们有更多的 Threads Connected,但较少的 Threads Running(正在运行的查询命令)。一些线程正在连接的过程中。查看更多详情here
    • 时间列:线程处于当前状态的时间(以秒为单位)。
    • 已连接的线程数:此时打开到服务器的 MySQL 客户端连接数。因此,例如,在我们的应用程序代码中,当我们执行mysqli_connect 时,它会打开到服务器的连接。在这种特殊情况下,它基本上也意味着 15 个客户端会话(其中大部分来自应用程序代码)正在同时执行。
    • 正在运行的线程:在这 15 个连接中,有 4 个实际上正在执行查询。
    • 总连接数:到目前为止与服务器建立的总连接数(我相信自上次服务器重启以来)。
    • 连接限制:可以同时建立的最大连接数。 Default 的值为 151。在我们的案例中,由于可用的服务器容量,我们已将其增加到 512。

    【讨论】:

    • 所以如果 Command 列的值为 Sleep 并且 Time 列的值非常大(比如 1500),这是否意味着客户端连接对象已经有一段时间没有被使用(并且有资格使用)?
    • @sandipray 是的,这基本上意味着您的客户端连接了很长时间。这并不一定意味着它一直在睡觉。睡眠是它的当前状态。我刚才可能已经进入睡眠状态(可以说是在执行了一些查询之后)。
    • 如果我同时使用workbench和phpmyadmin连接到我的本地mysql,它是否会将连接视为2个不同的客户端?
    • @adrianriyadi 是的
    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多