登陆

一文看懂mysql sys库常见用法--完成数据库信息的搜集及监控

admin 2019-10-31 249人围观 ,发现0个评论

概述

MySQL5.7的新特性中,十分杰出的特性之一便是sys库,不只能够经过sys库完结MySQL信息的搜集,还能够用来监控和排查问题。下面介绍一些常用的用法。


一、用户、衔接类

1、检查每个客户端IP过来的衔接耗费资源状况。

select * from sys.host_summary;

2、检查每个用户耗费资源状况

select * from sys.user_summary;

3、检查当时衔接状况(有多少衔接就应该有多少行)

select host,current_connections,statements from sys.host_summary;

4、检查当时正在履行的SQL

和履行show full processlist的成果差不多

select conn_id,pid,user,db,c一文看懂mysql sys库常见用法--完成数据库信息的搜集及监控ommand,current_statement,last_statement,time,lock_latency from sys.session


二、SQL 和io类

1、检查发作IO恳求前5名的文件。

select * from sys.io_global_by_file_by_bytes order by total limit 5;


三、buffer pool 、内存

1、检查一共分配了多少内存

select * from sys.memory_global_total;
select * from sys.memory_global_by_current_bytes;

2、每个库(database)占用多少buffer pool

select * from sys.innodb_buffer_stats_by_schema order by a一文看懂mysql sys库常见用法--完成数据库信息的搜集及监控llocated desc;

pages是指在buffer pool中的page数量;pages_old指在LUR 列表中处于后37%方位的page。

当呈现buffer page不行用时,就会征用这些page所占的空间。37%是默许方位,详细能够自定义。

3、计算每张表详细在InnoDB中详一文看懂mysql sys库常见用法--完成数据库信息的搜集及监控细的状况,比方占多少页?

留意和前面的pages的总数都是持平的,也能够借用sum(pages)运算验证一下。

select * from sys.innodb_buffer_stats_by_table;

4、查询每个衔接分配了多少内存

使用session表和memory_by_thread_by_current_bytes分配表进行相关查询。

SELECT
b.USER,
current_count_used,
current_allocated,
current_avg_alloc,
current_max_alloc,
total_allocated,
current_statement
FROM
sys.memory_by_thread_by_current_bytes a,
sys.SESSION b
WHERE
a.thread_id = b.thd_id;


四、字段、索引、锁

1、检查表自增字段最大值和当时值,有时候做数据增加的监控,能够作为参阅。

select * from sys.schema_auto_increment_columns;

2、MySQL索引使用状况计算

select * from sys.schema_index_statistics order by rows_selected desc;

3、MySQL中有哪些冗余索引和无用索引

若库中展现没有冗余索引,则没有数据;当有联合索引idx_abc(a,b,c)和idx_a(a),那么idx_a就算冗余索引了。

select * from sys.schema_redundant_indexes;

4、检查INNODB 锁信息

在未来的版别将被移除,能够选用其他方法

select * from sys.innodb_lock_waits

5、检查库等级的锁信息,这个需求先翻开MDL锁的监控:

--翻开MDL锁监控
update performance_schema.setup_instruments set enabled='YES',TIMED='YES' where name='wait/lock/metadata/sql/mdl';
select * from sys.schema_table_lock_waits;


五、线程类

1、MySQL内部有多个线程在运转,线程类型及数量

select user,count(*) from sys.`processlist` group by user;


六、主键自增

检查MySQL自增id的使用状况

SELECT
table_schema,
table_name,
ENGINE,
Auto_increment
FROM
information_schema.TABLES
WHERE
一文看懂mysql sys库常见用法--完成数据库信息的搜集及监控TABLE_SCHEMA NOT IN ( "INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA", 在线直播"MYSQL", "SYS" )


后边会共享更多devops和DBA方面的内容,感兴趣的朋友能够重视下~

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP