mysql serverstatus_MySQL状态变量(ServerStatusVariables)_MySQL

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

1、状态变量

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 |

+---------------+----------------+

--查看全局状态变量opened_tables

root@localhost[tempdb]> show global status like 'opened_tables';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Opened_tables | 54 |

+---------------+-------+

root@localhost[tempdb]> select count(*) from mysql.db;

+----------+

| count(*) |

+----------+

| 2 |

+----------+

root@localhost[tempdb]> show global status like 'opened_tables';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Opened_tables | 55 | --值变为55

+---------------+-------+

--从information_schema.global_status表查询状态变量OPENED_TABLES

root@localhost[tempdb]> select * from information_schema.global_status

-> where variable_name like 'opened_tables';

+---------------+----------------+

| VARIABLE_NAME | VARIABLE_VALUE |

+---------------+----------------+

| OPENED_TABLES | 55 |

+---------------+----------------+

--清洗状态变量统计信息

root@localhost[tempdb]> flush status;

Query OK, 0 rows affected (0.00 sec)

--下面的查询结果可以看出,session级别的opened_tables被重置为0

root@localhost[tempdb]> show session status like 'opened_tables';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Opened_tables | 0 |

+---------------+-------+

--Author: Leshami

--Blog : http://blog.csdn.net/leshami

--而全局级别的opened_tables未受到任何影响

root@localhost[tempdb]> show global status like 'opened_tables';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Opened_tables | 55 |

+---------------+-------+

3、使用mysqladmin extended-status获取状态变量

suse11b:~ # mysqladmin extended-status|grep Connections

| Connections | 18 |

suse11b:~ # mysql

root@localhost[(none)]> system mysqladmin extended-status|grep Connections

| Connections | 20 |

root@localhost[(none)]> exit

Bye

suse11b:~ # mysqladmin --help |more #mysqladmin与状态变量有关的使用

extended-status Gives an extended status message from the server

flush-status Clear status variables

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:变量状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值