如何使用SELECT语句查询MySQL的global variables和global status值
结论
完全可以通过SELECT语句获取MySQL的各类全局变量、状态值,该操作是官方支持的合法操作,灵活度比SHOW命令更高。
具体使用方法
你查询的Ssl_server_not_after属于全局状态指标,对应performance_schema库下的global_status表,对应的查询语句如下:
SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Ssl_server_not_after';
该语句和你当前使用的SHOW语句返回结果完全一致。
如果需要查询全局系统变量,可以用同库下的global_variables表,示例:
-- 举例查询全局的最大连接数配置 SELECT VARIABLE_VALUE FROM performance_schema.global_variables WHERE VARIABLE_NAME = 'max_connections';
补充说明
- 只要你的账号拥有
performance_schema库的查询权限,就能正常执行这类语句,不需要额外高阶权限。 - 如果你使用的是MySQL 5.6及更早版本,也可以查询
information_schema下的同名表实现相同效果,不过高版本MySQL已经把这类信息迁移到performance_schema中,更推荐用后者。 - 若需要查询会话级的状态、变量,把表名替换为
session_status、session_variables即可。 SELECT语法支持更复杂的过滤、关联查询操作,如果你需要批量查询、多指标对比,会比SHOW命令高效很多。
内容的提问来源于stack exchange,提问作者farhany
相关产品推荐
相关产品推荐

