视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL状态变量(ServerStatusVariables)
2020-11-09 12:50:55 责编:小采
文档

MySQL状态变量是当前服务器自启动后累计的一些系统状态信息,主要用于评估当前系统资源的使用情况以进一步分析系统性能而做出相应

MySQL状态变量是当前服务器自启动后累计的一些系统状态信息,主要用于评估当前系统资源的使用情况以进一步分析系统性能而做出相应的调整决策。这些状态变量我们可以理解为等同于Oracle数据库的动态性能视图。MySQL的状态变量有很多,比如SQL执行频率,索引的使用情况,锁资源的使用情况等等。状态变量可以分区全局以及会话级别的状态变量。状态变量不可修改,为只读属性,由系统更新。本文演示了状态变量的一些示例,仅为抛砖引玉之用。

1、状态变量
反映当前mysql数据库服务器自当次启动以来的累计相关状态信息,分为会话级与全局级别状态信息。
与系统变量类似,有些状态变量有全局和会话级别,,而有些只有全局级别。如binlog_cache_disk_use仅有全局状态,而bytes_sent两者都有。
可以通过show status like '%variable_name%' 或者show global status like '%variable_name%'来查看。
在未使用Like的情形下show status会显示全部的状态变量。
可以通过查询系统表information_schema.global_status以及information_schema.session_status来获取状态变量信息。
可以在命令行下通过mysqladmin extended-status方式来获取状态变量的相关信息。
可以通过命令行方式mysqladmin extended-status -r -i 5或innotop持续观察状态变量的改变情况。
一些状态变量重可以用FLUSH STATUS语句重置为零值。

2、show方式查看状态变量

--当前演示环境
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.5.39-log |
+---------------+------------+

a、查看所有状态变量
root@localhost[(none)]> show status;
+------------------------------------------+-------------+
| Variable_name | Value |
+------------------------------------------+-------------+
| Aborted_clients | 0 |
| Binlog_stmt_cache_use | 1 |
| Bytes_received | 135 |
| Bytes_sent | 266 |
| ................ | |
| Threads_running | 1 |
| Uptime | 76242 |
| Uptime_since_flush_status | 76242 |
+------------------------------------------+-------------+
312 rows in set (0.00 sec) --可以看出当前版本5.5.39有312个状态变量


b、查看仅有global的状态变量(connections)
--查看指定的状态变量,以下两个与connection相关的都为全局状态变量
root@localhost[(none)]> show global status like 'connection%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Connections | 11 | --连接到MySQL服务器的数量(包含成功或失败的)。
+----------------------+-------+

SUSE11b:~ # mysql -ufred

fred@localhost[(none)]> show global status like '%connection%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Connections | 12 | --连接之后,我们看到Connections的值变为12了。
+----------------------+-------+


c、查看既有global又有session状态的变量
--查看session状态变量opened_tables
root@localhost[tempdb]> show session status like 'opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 0 |
+---------------+-------+

root@localhost[tempdb]> select count(*) from tb_slow;
+----------+
| count(*) |
+----------+
| 424448 |
+----------+

root@localhost[tempdb]> show session status like 'opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 1 | --值变为1
+---------------+-------+

--从information_schema.session_status表查询状态变量OPENED_TABLES
root@localhost[tempdb]> select * from information_schema.session_status
-> where variable_name like 'opened_tables';
+---------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+----------------+
| OPENED_TABLES | 1 |
+---------------+----------------+

下载本文
显示全文
专题