您好,登錄后才能下訂單哦!
小編給大家分享一下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視圖怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。