0
点赞
收藏
分享

微信扫一扫

查看MySQL连接数、缓存、锁、慢日志、语句、吞吐、配置等监控数据


使用 mysql的show命令实现获取,从 connects、buffercache、lock、SQL、statement、Database throughputs、serverconfig 7个方面获取监控数据。

连接数(Connects)

最大使用连接数:

mysql> show status like 'Max_used_connections';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 1 |
+----------------------+-------+
1 row in set (0.64 sec)

当前打开的连接数:

mysql> show status like 'Threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 1 |
+-------------------+-------+
1 row in set (0.00 sec)

缓存(bufferCache)

未从缓冲池读取的次数:

mysql> show status like 'Innodb_buffer_pool_reads';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Innodb_buffer_pool_reads | 328 |
+--------------------------+-------+
1 row in set (0.00 sec)

从缓冲池读取的次数:

mysql> show status like 'Innodb_buffer_pool_read_requests';
+----------------------------------+-------+
| Variable_name | Value |
+----------------------------------+-------+
| Innodb_buffer_pool_read_requests | 1967 |
+----------------------------------+-------+
1 row in set (0.00 sec)

缓冲池的总页数:

mysql> show status like 'Innodb_buffer_pool_pages_total';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| Innodb_buffer_pool_pages_total | 4096 |
+--------------------------------+-------+
1 row in set (0.00 sec)

缓冲池空闲的页数:

mysql> show status like 'Innodb_buffer_pool_pages_free';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_buffer_pool_pages_free | 3735 |
+-------------------------------+-------+
1 row in set (0.00 sec)

缓存命中率计算:(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests)*100%
缓存池使用率为:((Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free)/Innodb_buffer_pool_pages_total)*100%

锁(lock)

锁等待个数:

mysql> show status like 'Innodb_row_lock_waits';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Innodb_row_lock_waits | 0 |
+-----------------------+-------+
1 row in set (0.00 sec)

平均每次锁等待时间:

mysql> show status like 'Innodb_row_lock_time_avg';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Innodb_row_lock_time_avg | 0 |
+--------------------------+-------+
1 row in set (0.00 sec)

查看是否存在表锁:

mysql> show open TABLES where in_use>0;
Empty set (2.35 sec)

有数据代表存在锁表,空为无表锁。
备注:锁等待统计得数量为累加数据,每次获取得时候可以跟之前得数据进行相减,得到当前统计得数据。

SQL

查看 mysql 开关是否打开:

mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF |
+----------------+-------+
1 row in set, 1 warning (2.32 sec)

ON 为开启状态,如果为 OFF,set global slow_query_log=1 进行开启:

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (2.65 sec)

mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | ON |
+----------------+-------+
1 row in set, 1 warning (0.00 sec)

查看 mysql 阈值:

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set, 1 warning (0.00 sec)

根据页面传递阈值参数,修改阈值 set global long_query_time=0.1。
查看 mysql 慢 sql 目录:

mysql> show variables like 'slow_query_log_file';
+---------------------+----------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+----------------------------------------------------------------------+
| slow_query_log_file | D:\phpstudy_pro\MySQL5.7.26\-slow.log |
+---------------------+----------------------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

s:是表示按照何种方式排序
c:访问次数
i:锁定时间
r:返回记录
t:查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间
t:即为返回前面多少条数据
g:后边搭配一个正则匹配模式,大小写不敏感

  1. 访问次数最多的20个sql语句

mysqldumpslow -s c -t 20  1d0a52e2683d-slow.log

  1. 返回记录集最多的20个sql

mysqldumpslow -s r -t 20  1d0a52e2683d-slow.log

  1. 得到按照时间排序的前10条里面含有做了连接的查询SQL

mysqldumpslow -s t -t 10 -g "left join"  /data/mysql/mysql-slow.log /

注:此语句通过 jdbc 执行不了,属于命令行执行。
备注:当 mysqldumpslow 命令执行失败时,将慢日志同步到本地进行格式化处理。

statement

insert 数量:

mysql> show status like 'Com_insert';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_insert | 0 |
+---------------+-------+
1 row in set (0.00 sec)

delete 数量:

mysql> show status like 'Com_delete';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_delete | 0 |
+---------------+-------+
1 row in set (0.00 sec)

update 数量:

mysql> show status like 'Com_update';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_update | 0 |
+---------------+-------+
1 row in set (0.00 sec)

select 数量:

mysql> show status like 'Com_select';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 1 |
+---------------+-------+
1 row in set (0.00 sec)

吞吐(Database throughputs)

发送吞吐量:

mysql> show status like 'Bytes_sent';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Bytes_sent | 889 |
+---------------+-------+
1 row in set (0.00 sec)

接收吞吐量:

mysql> show status like 'Bytes_received';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| Bytes_received | 446 |
+----------------+-------+
1 row in set (0.00 sec)

数据库参数(serverconfig)

mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 120 |
+---------------+-------+
1 row in set, 1 warning (0.00 sec)


举报

相关推荐

0 条评论