可以在MySQL中使用SHOW STATUS选择单个值吗?

pet*_*aus 11 mysql

是否可以编写一个只返回MySQL的SHOW STATUS返回的变量值的查询?理想情况下,我想要的东西:

SELECT `Value` FROM (SHOW STATUS LIKE 'Com_delete')
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

这可能吗?

Ike*_*ker 18

如果您使用的是MySQL 5.1或更高版本,您应该能够从INFORMATION_SCHEMA这样的全局状态获取数据:

select VARIABLE_VALUE 
from information_schema.GLOBAL_STATUS 
where VARIABLE_NAME = 'Com_delete';
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要会话状态:

select VARIABLE_VALUE 
from information_schema.SESSION_STATUS 
where VARIABLE_NAME = 'Com_delete';
Run Code Online (Sandbox Code Playgroud)

默认状态SHOW STATUSSESSIONstatus,因此后一个查询可以替代它.


Seb*_*Gra 6

补充 Ike Walker 的回答,INFORMATION_SCHEMA 在 MySQL 5.7.6 上已被弃用,因为 Performance Schema 表旨在替换 INFORMATION_SCHEMA 表。

因此,通过查询 INFORMATION_SCHEMA 您可能会收到如下错误:

'INFORMATION_SCHEMA.SESSION_STATUS' 功能被禁用;请参阅“show_compatibility_56”的文档

根据,您可以设置show_compatibility_56ON启用向后兼容性,并继续使用5.6语法,或启用PERFORMANCE_SCHEMA和查询新表:

performance_schema.global_variables
performance_schema.session_variables

performance_schema.global_status
performance_schema.session_status
Run Code Online (Sandbox Code Playgroud)