共计 4745 个字符,预计需要花费 12 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 MySQL5.7 中 sys schema 视图怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
sys schema 视图摘要
sys schema 视图中包含了很多以各种方式总结的 Performance Schema 表的视图,这些视图大多数都是成对出现,使得每组视图中的一个成员具有与另一个成员相同的名称,加上一个 X$ 前缀。例如 host_summary_by_file_io 视图汇总按照主机分组的文件 I / O 延迟。没有 X$ 前缀的视图提供了更加友好且易阅读的数据,X$ 前缀的视图提供了原始数据,更多用于需要对数据进行处理的其他工具。
视图按照展示信息可以分为如下几类。
主机相关信息:以 host_summary 开头的视图,主要汇总了 IO 延迟的信息,从主机、文件事件类型、语句类型等角度展示文件 IO 的信息。
InnoDB 相关信息:以 innodb 开头的视图,汇总了 innodb buffer page 信息和事务等待 InnoDB 锁信息。
IO 使用情况:以 io 开头的视图,总结了 io 使用者的信息,包括等待 I / O 的情况、I/ O 使用量情况,从各个角度分组展示。
内存使用情况:以 memory 开头的视图,从主机、线程、用户、事件角度展示内存使用情况。
连接与会话信息:其中,processlist 和 session 相关的视图,总结了会话相关信息。
表相关信息:以 schema_table 开头的视图,从全表扫描、InnoDB 缓冲池等方面展示了表统计信息。
索引信息:其中包含 index 的视图,统计了索引使用情况,以及重复索引和未使用的索引情况。
语句相关信息:以 statement 开头的视图,统计的规范化后的语句使用情况,包括错误数、警告数、执行全表扫描的、使用临时表、执行排序等信息。
用户的相关信息:以 user 开头的视图,统计了用户使用的文件 IO、执行的语句统计信息等。
等待事件相关信息:以 wait 开头的视图,从主机和事件角度展示等待类事件的延迟情况。
sys schema 重点视图的应用场景
查看表的访问量
点击 (此处) 折叠或打开
mysql select table_schema,table_name,io_read_requests+io_write_requests as total from schema_table_statistics;
+————–+——————————–+——-+
| table_schema | table_name | total |
+————–+——————————–+——-+
| sys | sys_config | 19 |
| dedecms | dede_member_group | 13 |
| dedecms | dede_scores | 12 |
| dedecms | dede_ratings | 12 |
| dedecms | dede_pwd_tmp | 12 |
| dedecms | dede_purview | 12 |
| dedecms | dede_plus | 12 |
我们可以监控每张表访问量的变化情况,或者监控某个库的访问量变化等。如果某个库、某个表发生变化,DBA 能够及时知道每个表的访问情况。
冗余索引与未使用的索引检查
点击 (此处) 折叠或打开
mysql select * from sys.schema_redundant_indexes \G
*************************** 1. row ***************************
table_schema: dedecms
table_name: dede_member_group
redundant_index_name: id
redundant_index_columns: id
redundant_index_non_unique: 1
dominant_index_name: PRIMARY
dominant_index_columns: id
dominant_index_non_unique: 0
subpart_exists: 0
sql_drop_index: ALTER TABLE `dedecms`.`dede_member_group` DROP INDEX `id`
针对冗余索引,DBA 可以及时清理掉,减少磁盘的压力,提高数据库性能。
表自增 ID 监控
点击 (此处) 折叠或打开
mysql select * from sys.schema_auto_increment_columns \G
*************************** 1. row ***************************
table_schema: dedecms
table_name: dede_sys_enum
column_name: id
data_type: smallint
column_type: smallint(5) unsigned
is_signed: 0
is_unsigned: 1
max_value: 65535
auto_increment: 20040
auto_increment_ratio: 0.3058
*************************** 2. row ***************************
table_schema: dedecms
table_name: dede_member_tj
column_name: mid
data_type: mediumint
column_type: mediumint(8)
is_signed: 1
is_unsigned: 0
max_value: 8388607
auto_increment: 247352
auto_increment_ratio: 0.0295
展示了表的自增量列名、数据类型、当前使用量、最大值及使用率情况,极大地方便了 DBA 快速了解数据库自增量的使用情况。
监控全表扫描的 SQL 语句
点击 (此处) 折叠或打开
mysql select * from sys.statements_with_full_table_scans \G
*************************** 1. row ***************************
query: SELECT * FROM `sys_config` LIMIT ?, …
db: sys
exec_count: 1
total_latency: 74.62 ms
no_index_used_count: 1
no_good_index_used_count: 0
no_index_used_pct: 100
rows_sent: 6
rows_examined: 6
rows_sent_avg: 6
rows_examined_avg: 6
first_seen: 2018-03-21 08:52:47
last_seen: 2018-03-21 08:52:47
digest: befd5e5f4382f78675bbc86d495dfac2
*************************** 2. row ***************************
query: SELECT `performance_schema` . … name` . `SUM_TIMER_WAIT` DESC
db: sys
exec_count: 2
total_latency: 644.19 ms
no_index_used_count: 2
no_good_index_used_count: 0
no_index_used_pct: 100
rows_sent: 155
rows_examined: 1481
rows_sent_avg: 78
rows_examined_avg: 741
first_seen: 2018-03-22 03:27:54
last_seen: 2018-03-22 03:44:09
digest: 6f58edd9cee71845f592cf5347f8ecd7
*************************** 3. row ***************************
query: SELECT * FROM `INNODB_SYS_TABLESPACES
从查询结果中可以看到这些语句执行的次数,其中没有使用索引的次数。
点击 (此处) 折叠或打开
mysql select file,avg_read+avg_write as avg_io from sys.io_global_by_file_by_bytes order by avg_io desc limit 10;
+————————————————————-+——–+
| file | avg_io |
+————————————————————-+——–+
| @@datadir/mysql/db.MYD | 1464 |
| @@datadir/sys/io_global_by_wait_by_latency.frm | 1015 |
| @@datadir/sys/user_summary.frm | 958 |
| @@datadir/sys/x@0024schema_table_statistics_with_buffer.frm | 955 |
| @@datadir/mysql/tables_priv.MYD | 947 |
| @@datadir/sys/x@0024io_global_by_wait_by_bytes.frm | 943 |
| @@datadir/sys/host_summary_by_statement_type.frm | 911 |
| @@datadir/sys/user_summary_by_statement_type.frm | 904 |
| @@datadir/sys/x@0024user_summary.frm | 898 |
| @@datadir/sys/io_by_thread_by_latency.frm | 897 |
+————————————————————-+——–+
DBA 可以通过该查询来大致了解磁盘 IO 消耗在哪里,哪些文件消耗的最多。
操作风险
虽然这些视图方便了 DBA 对数据库的监控,但建议不要大量在线上部署通过查询 sys 或 performance_schema 中的表或者视图来完成一些监控,因为查询这些信息时,MySQL 会消耗大量的资源去收集相关信息,严重的可能会导致业务请求被阻塞,从而引起故障。
以上是“MySQL5.7 中 sys schema 视图怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!