MySQL中show status和show variables的区别
关注我,获取更多分享。
show status VS show variables
在MySQL中,我们经常使用如下两个命令来查看MySQL服务器的一些参数配置信息。
show status like '%xxx%';
show variables like '%xxx%';
有时候又用到如下两个命令:
show global status like '%xxx%';
show global variables like '%xxx%';
下面的两个命令带有关键词global
,上面的两个命令不带有global
,这个我们应该都知道,带有global
关键字的命令是查看全局参数的值,而不带global
关键字的命令是只查看当前session
级别的参数的值。
那具体什么是全局参数?
什么又是会话session级别的参数?
所谓的全局参数:某个参数的值设置之后,对所有连接到MySQL服务的用户都生效,所有用户登录到MySQL后,该参数都是使用同一个值。
而会话级别的参数:某个参数的值设置之后,只对当前连接到MySQL服务器的当前会话生效,当前会话退出后,这个参数就恢复了默认值。并且当连接A登录的时候,这个参数对A生效。但是对于新开一个连接服务B,在B的会话中,设置的参数并不会生效。
但是show status
和show variables
有什么区别?我们简单总结一下。
何时用status何时用variables
给我一个参数名称,我怎么确定我该用哪个命令来查看它的值是多少?
一开始的时候,我是两个命令都执行一次,哪个命令有结果输出那么就证明应该使用哪个命令来查看这个参数的值。
但是,今天我仔细查了一下规律:
- 凡是参数的开头字母是大写的参数,都需要使用
show status
命令来查看该参数的具体值是多少,用另外一个命令查看该参数输出内为空。 - 凡是参数的开头字母是小写的参数,都需要使用
show variables
命令来查该参数的具体值是多,用另外一个命令查看该参数输出内为空。
区别
status
status
查看的参数值是由MySQL自己统计计算得到的。它是MySQL服务运行状态具体的量化体现。都是不可以修改的,也就是不能通过set xxx=yyy;
的方式来改变它的值的。
这种参数大多数以大写的英文字母开头。
variables
variables
查看的参数是MySQL服务的配置参数,在启动MySQL服务的时候,是可以修改具体的参数值来达到对MySQL进行动态配置的目的,通常配置在MySQL的my.cnf
配置文件中。这些参数中,有些动态的参数可以通过set xxx=yyy;
的方式来动态修改。
这种参数大多数以小写的英文字母开头。
使用示例
mysql> show status like '%innodb_buffer%';
+---------------------------------------+--------------------------------------------------+
| Variable_name | Value |
+---------------------------------------+--------------------------------------------------+
| Innodb_buffer_pool_dump_status | Dumping of buffer pool not started |
| Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 200509 17:54:00 |
| Innodb_buffer_pool_resize_status | |
| Innodb_buffer_pool_pages_data | 7007 |
| Innodb_buffer_pool_bytes_data | 114802688 |
| Innodb_buffer_pool_pages_dirty | 0 |
| Innodb_buffer_pool_bytes_dirty | 0 |
| Innodb_buffer_pool_pages_flushed | 45090529 |
| Innodb_buffer_pool_pages_free | 1024 |
| Innodb_buffer_pool_pages_misc | 160 |
| Innodb_buffer_pool_pages_total | 8191 |
| Innodb_buffer_pool_read_ahead_rnd | 0 |
| Innodb_buffer_pool_read_ahead | 2982307001 |
| Innodb_buffer_pool_read_ahead_evicted | 2992094 |
| Innodb_buffer_pool_read_requests | 338849182502 |
| Innodb_buffer_pool_reads | 348763394 |
| Innodb_buffer_pool_wait_free | 1135862 |
| Innodb_buffer_pool_write_requests | 2591272346 |
+---------------------------------------+--------------------------------------------------+
18 rows in set (0.00 sec)
mysql> show variables like '%innodb_buffer%';
+-------------------------------------+----------------+
| Variable_name | Value |
+-------------------------------------+----------------+
| innodb_buffer_pool_chunk_size | 134217728 |
| innodb_buffer_pool_dump_at_shutdown | ON |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_dump_pct | 25 |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_instances | 1 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | ON |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_size | 134217728 |
+-------------------------------------+----------------+
10 rows in set (0.00 sec)
mysql>
mysql> show status like '%innodb_buffer_pool_size%';
Empty set (0.00 sec)
mysql> show variables like '%innodb_buffer_pool_size%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql> show variables like '%Innodb_buffer_pool_write_requests%';
Empty set (0.00 sec)
mysql> show status like '%Innodb_buffer_pool_write_requests%';
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Innodb_buffer_pool_write_requests | 2591286410 |
+-----------------------------------+------------+
1 row in set (0.00 sec)
mysql>
微信搜索“coder-home”或扫一扫下面的二维码,
关注公众号,第一时间了解更多干货分享,还有各类****资源。扫描它,带走我
推荐阅读
-
MySQL中show status和show variables的区别
-
MySQL存储引擎中的MyISAM和InnoDB区别详解
-
MySQL存储引擎中的MyISAM和InnoDB区别详解
-
mysql中engine=innodb和engine=myisam的区别介绍
-
Mysql中 show table status 获取表信息的方法
-
mysql中engine=innodb和engine=myisam的区别介绍
-
Mysql中 show table status 获取表信息的方法
-
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
-
php 中 怎么使用 mysqli连接 获取mysql的进程列表,就是类似 show processlist
-
MySQL中SHOW STATUS查看运行状况