按 user 分組統計檢視|全方位認識 sys 系統庫
在上一篇 《按 host 分組統計檢視|全方位認識 sys 系統庫》 中,我們介紹了sys 系統庫中按 host 分組統計的檢視,類似地,本期的內容將為大家介紹按照 user 進行分類統計的檢視。下面請跟隨我們一起開始 sys 系統庫的系統學習之旅吧。
01
user_summary,x$user_summary
檢視活躍連線中按使用者分組的總執行時間、平均執行時間、總的IOS、總的記憶體使用量、表掃描數量等統計資訊,預設按照總延遲時間(執行時間)降序排序。資料來源:performance_schema.accounts、sys.x$user_summary_by_statement_latency、sys.x$user_summary_by_file_io、sys.x$memory_by_user_by_current_bytes
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:54:32> select * from user_summary limit 1\G *************************** 1. row *************************** user: admin statements: 90530 statement_latency: 2.09 h statement_avg_latency: 83.12 ms table_scans: 498 file_ios: 60662 file_io_latency: 31.05 s current_connections: 4 total_connections: 1174 unique_hosts: 2 current_memory: 85.34 MiB total_memory_allocated: 7.21 GiB 1 row in set (0.04 sec) # 帶x$字首的檢視 admin@localhost : sys 12:55:48> select * from x$user_summary limit 1\G *************************** 1. row *************************** user: admin statements: 90752 statement_latency: 7524792139504000 statement_avg_latency: 82915992369.3583 table_scans: 500 file_ios: 60662 file_io_latency: 31053125849250 current_connections: 4 total_connections: 1174 unique_hosts: 2 current_memory: 89381384 total_memory_allocated: 7755173436 1 row in set (0.02 sec)
檢視欄位含義如下:
-
user:客戶端訪問使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
statements:對應使用者執行的語句總數量
-
statement_latency:對應使用者執行的語句總延遲時間(執行時間)
-
statement_avg_latency:對應使用者執行的語句中,平均每個語句的延遲時間(執行時間)(SUM(stmt.total_latency/SUM(stmt.total))
-
table_scans:對應使用者執行的語句發生表掃描總次數
-
file_ios:對應使用者執行的語句產生的檔案I/O事件總次數
-
file_io_latency:對應使用者執行的語句產生的檔案I/O事件的總延遲時間(執行時間)
-
current_connections:對應使用者的當前連線數
-
total_connections:對應使用者的歷史總連線數
-
unique_hosts:對應使用者來自不同主機(針對主機名去重)連線的數量
-
current_memory:對應使用者的連線當前已使用的記憶體分配量
-
total_memory_allocated:對應使用者的連線的歷史記憶體分配量
PS:該檢視只統計檔案IO等待事件資訊("wait/io/file/%")
02
user_summary_by_file_io,x$user_summary_by_file_io
按照使用者分組的檔案I/O延遲時間、IOS統計資訊,預設按照總檔案I/O時間延遲時間(執行時間)降序排序。資料來源:performance_schema.events_waits_summary_by_user_by_event_name
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:56:18> select * from user_summary_by_file_io limit 3; +------------+-------+------------+ | user | ios | io_latency | +------------+-------+------------+ | admin | 30331 | 15.53 s | | background | 10119 | 2.49 s | | qfsys | 281 | 4.69 ms | +------------+-------+------------+ 3 rows in set (0.01 sec) # 帶x$字首的檢視 admin@localhost : sys 12:56:21> select * from x$user_summary_by_file_io limit 3; +------------+-------+----------------+ | user | ios | io_latency | +------------+-------+----------------+ | admin | 30331 | 15526562924625 | | background | 10122 | 2489231563125 | | qfsys | 281 | 4689150375 | +------------+-------+----------------+ 3 rows in set (0.00 sec)
檢視欄位含義如下:
-
user:客戶端使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
ios:對應使用者的檔案I/O事件總次數
-
io_latency:對應使用者的檔案I/O事件的總延遲時間(執行時間)
PS:該檢視只統計檔案IO等待事件資訊("wait/io/file/%")
03
user_summary_by_file_io_type,x$user_summary_by_file_io_type
按照使用者和事件型別(事件名稱)分組的檔案I/O延遲和IOS統計資訊,預設情況下按照使用者名稱和總檔案I/O時間延遲時間(執行時間)降序排序。資料來源:performance_schema.events_waits_summary_by_user_by_event_name
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:56:24> select * from user_summary_by_file_io_type limit 3; +-------+-------------------------------------+-------+---------+-------------+ | user | event_name | total | latency | max_latency | +-------+-------------------------------------+-------+---------+-------------+ | admin | wait/io/file/sql/io_cache | 27955 | 10.53 s | 67.61 ms | | admin | wait/io/file/innodb/innodb_log_file | 912 | 2.14 s | 28.22 ms | | admin | wait/io/file/sql/binlog | 879 | 2.05 s | 31.75 ms | +-------+-------------------------------------+-------+---------+-------------+ 3 rows in set (0.00 sec) # 帶x$字首的檢視 admin@localhost : sys 12:56:48> select * from x$user_summary_by_file_io_type limit 3; +-------+-------------------------------------+-------+----------------+-------------+ | user | event_name | total | latency | max_latency | +-------+-------------------------------------+-------+----------------+-------------+ | admin | wait/io/file/sql/io_cache | 27955 | 10534662677625 | 67608294000 | | admin | wait/io/file/innodb/innodb_log_file | 912 | 2143870695375 | 28216455000 | | admin | wait/io/file/sql/binlog | 879 | 2054976453000 | 31745275125 | +-------+-------------------------------------+-------+----------------+-------------+ 3 rows in set (0.01 sec)
檢視欄位含義如下:
-
user:客戶端使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
EVENT_NAME:檔案I/O事件名稱
-
total:對應使用者發生的檔案I/O事件總次數
-
latency:對應使用者的檔案I/O事件的總延遲時間(執行時間)
-
max_latency:對應使用者的單次檔案I/O事件的最大延遲時間(執行時間)
PS:該檢視只統計檔案IO等待事件資訊("wait/io/file/%")
04
user_summary_by_stages,x$user_summary_by_stages
按使用者分組的階段事件統計資訊,預設情況下按照使用者名稱和階段事件總延遲時間(執行時間)降序排序。資料來源:performance_schema.events_stages_summary_by_user_by_event_name
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:56:51> select * from user_summary_by_stages limit 3; +------------+-------------------------------+-------+---------------+-------------+ | user | event_name | total | total_latency | avg_latency | +------------+-------------------------------+-------+---------------+-------------+ | background | stage/innodb/buffer pool load | 1 | 12.56 s | 12.56 s | +------------+-------------------------------+-------+---------------+-------------+ 1 row in set (0.01 sec) # 帶x$字首的檢視 admin@localhost : sys 12:57:10> select * from x$user_summary_by_stages limit 3; +------------+-------------------------------+-------+----------------+----------------+ | user | event_name | total | total_latency | avg_latency | +------------+-------------------------------+-------+----------------+----------------+ | background | stage/innodb/buffer pool load | 1 | 12561724877000 | 12561724877000 | +------------+-------------------------------+-------+----------------+----------------+ 1 row in set (0.00 sec)
檢視欄位含義如下:
-
user:客戶端使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
EVENT_NAME:階段事件名稱
-
total:對應使用者的階段事件的總次數
-
total_latency:對應使用者的階段事件的總延遲時間(執行時間)
-
avg_latency:對應使用者的階段事件的平均延遲時間(執行時間)
05
user_summary_by_statement_latency,x$user_summary_by_statement_latency
按照使用者分組的語句統計資訊,預設情況下按照語句總延遲時間(執行時間)降序排序。資料來源:performance_schema.events_statements_summary_by_user_by_event_name
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:57:13> select * from user_summary_by_statement_latency limit 3; +------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ | user | total | total_latency | max_latency | lock_latency | rows_sent | rows_examined | rows_affected | full_scans | +------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ | admin | 45487 | 1.05 h | 45.66 m | 19.02 s | 6065 | 17578842 | 1544 | 258 | | qfsys | 9 | 929.43 ms | 928.68 ms | 0 ps | 5 | 0 | 0 | 0 | | background | 0 | 0 ps | 0 ps | 0 ps | 0 | 0 | 0 | 0 | +------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ 3 rows in set (0.00 sec) # 帶x$字首的檢視 admin@localhost : sys 12:57:34> select * from x$user_summary_by_statement_latency limit 3; +------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ | user | total | total_latency | max_latency | lock_latency | rows_sent | rows_examined | rows_affected | full_scans | +------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ | admin | 45562 | 3762457232413000 | 2739502018445000 | 19019928000000 | 6068 | 17579421 | 1544 | 259 | | qfsys | 9 | 929429421000 | 928682487000 | 0 | 5 | 0 | 0 | 0 | | background | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ 3 rows in set (0.00 sec)
檢視欄位含義如下:
-
user:客戶端使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
total:對應使用者執行的語句總數量
-
total_latency:對應使用者執行的語句總延遲時間(執行時間)
-
max_latency:對應使用者執行的語句單次最大延遲時間(執行時間)
-
lock_latency:對應使用者執行的語句鎖等待的總時間
-
rows_sent:對應使用者執行的語句返回給客戶端的總資料行數
-
rows_examined:對應使用者執行的語句從儲存引擎讀取的總資料行數
-
rows_affected:對應使用者執行的語句影響的總資料行數
-
full_scans:對應使用者執行的語句的全表掃描總次數
06
user_summary_by_statement_type,x$user_summary_by_statement_type
按使用者和語句事件型別(事件型別名稱為語句事件的event_name擷取最後一部分字串,也是語句command型別字串類似)分組的語句統計資訊,預設情況下按照使用者名稱和對應語句的總延遲時間(執行時間)降序排序。資料來源:performance_schema.events_statements_summary_by_user_by_event_name
下面我們看看使用該檢視查詢返回的結果。
# 不帶x$字首的檢視 admin@localhost : sys 12:57:38> select * from user_summary_by_statement_type limit 3; +-------+-------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ | user | statement | total | total_latency | max_latency | lock_latency | rows_sent | rows_examined | rows_affected | full_scans | +-------+-------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ | admin | alter_table | 2 | 56.56 m | 43.62 m | 0 ps | 0 | 0 | 0 | 0 | | admin | select | 3662 | 5.53 m | 2.02 m | 4.73 s | 6000 | 17532984 | 0 | 148 | | admin | insert | 1159 | 36.04 s | 337.22 ms | 14.23 s | 0 | 0 | 1159 | 0 | +-------+-------------+-------+---------------+-------------+--------------+-----------+---------------+---------------+------------+ 3 rows in set (0.00 sec) # 帶x$字首的檢視 admin@localhost : sys 12:57:50> select * from x$user_summary_by_statement_type limit 3; +-------+-------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ | user | statement | total | total_latency | max_latency | lock_latency | rows_sent | rows_examined | rows_affected | full_scans | +-------+-------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ | admin | alter_table | 2 | 3393877088372000 | 2617456143674000 | 0 | 0 | 0 | 0 | 0 | | admin | select | 3663 | 331756087959000 | 121243627173000 | 4733109000000 | 6003 | 17533557 | 0 | 149 | | admin | insert | 1159 | 36041502943000 | 337218573000 | 14229439000000 | 0 | 0 | 1159 | 0 | +-------+-------------+-------+------------------+------------------+----------------+-----------+---------------+---------------+------------+ 3 rows in set (0.00 sec)
檢視欄位含義如下:
-
user:客戶端使用者名稱。如果在performance_schema表中user列為NULL,則假定為後臺執行緒,該欄位為'background',如果為前臺執行緒,則該欄位對應具體的使用者名稱
-
statement:語句事件名稱的最後一部分字串,與語句的command型別字串類似
-
其他欄位含義與 user_summary_by_statement_latency,x$user_summary_by_statement_latency 檢視的欄位含義相同
本期內容就介紹到這裡,本期內容參考連結如下:
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary-by-statement-type.html
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary-by-file-io.html
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary-by-file-io-type.html
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary-by-stages.html
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary-by-statement-latency.html
https://dev.mysql.com/doc/refman/5.7/en/sys-user-summary.html
| 作者簡介
羅小波·沃趣科技高階資料庫技術專家
IT從業多年,歷任運維工程師,高階運維工程師,運維經理,資料庫工程師,曾參與版本釋出系統,輕量級監控系統,運維管理平臺,資料庫管理平臺的設計與編寫,熟悉MySQL的體系結構時,InnoDB儲存引擎,喜好專研開源技術,追求完美。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2199946/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 按 host 分組統計檢視 | 全方位認識 sys 系統庫
- 按 file 分組統計檢視 | 全方位認識 sys 系統庫
- 等待事件統計檢視 | 全方位認識 sys 系統庫事件
- 語句效率統計檢視 | 全方位認識 sys 系統庫
- 記憶體分配統計檢視 | 全方位認識 sys 系統庫記憶體
- 統計資訊查詢檢視|全方位認識 sys 系統庫
- 其他混雜檢視 | 全方位認識 sys 系統庫
- 初相識 | 全方位認識 sys 系統庫
- 配置表 | 全方位認識 sys 系統庫
- 用於檢視配置的儲存過程 | 全方位認識 sys 系統庫儲存過程
- 會話和鎖資訊查詢檢視 | 全方位認識 sys 系統庫會話
- 其他混雜儲存過程 | 全方位認識 sys 系統庫儲存過程
- 字串與數字轉換函式 | 全方位認識 sys 系統庫字串函式
- 用於修改配置的儲存過程 | 全方位認識 sys 系統庫儲存過程
- 統計資訊記錄表|全方位認識 mysql 系統庫MySql
- 配置查詢與執行緒追蹤函式 | 全方位認識 sys 系統庫執行緒函式
- 訪問許可權控制系統|全方位認識 mysql 系統庫訪問許可權MySql
- 日誌資訊記錄表|全方位認識 mysql 系統庫MySql
- 複製資訊記錄表|全方位認識 mysql 系統庫MySql
- 時區資訊記錄表|全方位認識 mysql 系統庫MySql
- 資料庫物件資訊記錄表|全方位認識 mysql 系統庫資料庫物件MySql
- 最佳化器成本記錄表|全方位認識 mysql 系統庫MySql
- InnoDB 層系統字典表 | 全方位認識 information_schemaORM
- 系統狀態統計和檢視
- Linux 系統檢視使用者組Linux
- Server層統計資訊字典表 | 全方位認識 information_schemaServerORM
- Django使用者認證系統(一)User物件Django物件
- Linux系統glibc庫版本資訊檢視Linux
- 在Linux系統中如何檢視有哪些組?Linux
- mongodb分組統計MongoDB
- InnoDB 層鎖、事務、統計資訊字典表 | 全方位認識 information_schemaORM
- 資料庫系統原理(四)——檢視與索引資料庫索引
- 系統模組劃分設計的思考
- Postgresql系統表/檢視SQL
- Linux 系統檢視命令Linux
- 【MySQL資料庫】認識資料庫+環境搭建--------Windows系統MySql資料庫Windows
- Databricks 第四篇:分組統計和視窗
- Linux 系統檢視使用者屬於那個組Linux