暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL数据库中show status和show variables的区别

阎书利 2025-01-22
77

在使用MySQL数据库的时候,我们经常使用如下几种类型的SQL去查看参数设置。

show status like '%xxx%'; show variables like '%xxx%'; show global status like '%xxx%'; show global variables like '%xxx%';
复制

这两个命令,获取的参数值,在MySQL5.6版本的时候分别来自于如下几个表。

INFORMATION_SCHEMA.SESSION_VARIABLES 
NFORMATION_SCHEMA.SESSION_STATUS

INFORMATION_SCHEMA.GLOBAL_VARIABLES 
INFORMATION_SCHEMA.GLOBAL_STATUS 
复制

在MySQL 5.7.6开始,弃用了这几个INFORMATION_SCHEMA的表,改成了从如下Performance Schema 下的几张表获取,并且引入了show_compatibility_56参数来控制show命令从什么地方获取值。当show_compatibility_56为ON时代表启用了MySQL 5.6的兼容性,这时和MySQL5.6一致。如果show_compatibility_56为OFF,则代表禁用兼容性,这时表的信息通过peformance_schema获取,这时直接查询information_schame会报错。

performance_schema.global_variables performance_schema.session_variables performance_schema.variables_by_thread performance_schema.global_status performance_schema.session_status performance_schema.status_by_thread performance_schema.status_by_account performance_schema.status_by_host performance_schema.status_by_user
复制

而在 MySQL 8.0 中,删除了 INFORMATION_SCHEMA 变量表和 show_compatibility_56 系统变量,并且 SHOW 语句的输出始终基于Performance Schema表。

一、是否有global的区别

带有global字段的,表示获取的是全局参数的值,不带global字段的,是只查看当前 session
级别的参数的值。

  • global全局参数:某个参数的值设置之后,对所有连接到MySQL服务的用户都生效,所有用户登录到MySQL后,该参数都是使用同一个值。‘
  • session级别参数:某个参数的值设置之后,只对当前连接到MySQL服务器的当前会话生效,当前会话退出后,这个参数就恢复了默认值。可以直接在session级别set生效。

二、show status和show variables的区别

区别1:

show status查看的,参数的开头字母都是大写的。用另外一个命令查看该参数输出内为空。
在这里插入图片描述

show variables查看的,参数的开头字母都是小写的。用另外一个命令查看该参数输出内为空。

在这里插入图片描述

区别2:

show status查看的参数值是由MySQL自己统计计算得到的。它是MySQL服务运行状态具体的量化体现。都是不可以修改的,也就是不能通过 set xxx=yyy; 的方式来改变它的值的。

show variables查看的参数是MySQL服务的配置参数,在启动MySQL服务的时候,是可以修改具体的参数值来达到对MySQL进行动态配置的目的,通常配置在MySQL的 my.cnf配置文件中。这些参数中,有些动态的参数可以通过 set xxx=yyy; 的方式来动态修改。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论