问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://m.blog.csdn.net/weixin_47308871/article/details/145293058

在使用MySQL数据库时,经常会用到show statusshow variables命令来查看参数设置。本文将详细介绍这两个命令的区别,包括它们在不同MySQL版本中的实现方式、全局参数与会话参数的差异,以及各自的具体用途。

在使用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 
INFORMATION_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; 的方式来动态修改。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号