我在centos 7.4上运行mysql 8.0
phpmyadmin 和工作台显示有关连接数的完全不同的信息(如下所示)。
同时这是我在工作台上看到的:
这是 phpmyadmin 内部显示的有关流程的内容:
工作台内部的流程如下所示,它们与 phpmyadmin 的流程一致。
那么为什么它们显示相同的进程,但连接数量却截然不同?
如果您查看 ajax 请求的有效负载,您可以看到
requiredData
,类似于:
{
"0":[
[{"type":"statusvar","name":"Questions"}]
],
"1":[
[{"type":"statusvar","name":"Connections"}],
[{"type":"proc","name":"processes"}]
],
"2":[
[{"type":"statusvar","name":"Bytes_sent"}],
[{"type":"statusvar","name":"Bytes_received"}]
],
"3":[
[{"type":"cpu","name":"loadavg"}]
],
"4":[
[{"type":"memory","name":"MemUsed"}],
[{"type":"memory","name":"MemFree"}]
],
"5":[
[{"type":"memory","name":"SwapUsed"}],
[{"type":"memory","name":"SwapFree"}]
]
}
用
"type":"statusvar"
列出的变量是使用 SHOW GLOBAL STATUS WHERE Variable_name=...
检索的,如在 Server/Status/Monitor.php
中所示:
// Retrieve all required status variables
$statusVarValues = [];
if (count($statusVars)) {
$statusVarValues = $this->dbi->fetchResult(
"SHOW GLOBAL STATUS WHERE Variable_name='"
. implode("' OR Variable_name='", $statusVars) . "'",
0,
1
);
}
refreshChartGrid()
,您可以看到 PMA 正在将每个 ajax 调用中收到的值与前一个调用中的值进行比较。对于连接,它使用 Connections
的值,而不是 Workbench 使用的 Threads_connected
。