| 域 | 視圖 (不帶 x$ 為人類可讀單位,帶 x$ 為原始皮秒/字節) | 用途 |
| 主機維度 | host_summary / x$host_summary | 語句活動、文件 IO、連接數聚合 |
host_summary_by_file_io / x$... | 文件 IO 延遲、次數 |
host_summary_by_statement_latency / x$... | 語句延遲統計 |
host_summary_by_statement_type / x$... | 語句類型分佈 |
host_summary_by_stages / x$... | 階段事件耗時 |
| 用戶維度 | user_summary / x$user_summary | 用戶語句、IO、連接聚合 |
user_summary_by_file_io / x$... | 用戶文件 IO |
user_summary_by_statement_latency / x$... | 用戶語句延遲 |
user_summary_by_statement_type / x$... | 用戶語句類型分佈 |
| InnoDB 專項 | innodb_buffer_stats_by_schema / x$... | Buffer Pool 按 Schema 佔用 |
innodb_buffer_stats_by_table / x$... | Buffer Pool 按表佔用 |
innodb_lock_waits / x$innodb_lock_waits | 鎖等待詳情 (等待事務、持有事務、鎖模式、等待時長) |
schema_table_statistics_with_buffer / x$... | 表統計 + Buffer Pool 信息 |
| IO 分析 | io_global_by_file_by_latency / x$... | 全局文件 IO 延遲排序 |
io_by_thread_by_latency / x$... | 線程級 IO 消費 |
latest_file_io / x$... | 最近文件 IO 事件 |
| 內存分析 | memory_global_by_current_bytes / x$... | 全局內存分配類型佔用 |
memory_by_thread_by_current_bytes / x$... | 線程內存佔用 |
memory_global_total / x$... | 總內存佔用 |
| Schema/表結構 | schema_object_overview | 各庫對象類型統計 |
schema_redundant_indexes | 冗余/重複索引檢測 |
schema_unused_indexes | 未使用索引檢測 |
| 語句分析 | statement_analysis / x$statement_analysis | 語句聚合統計 (執行次數、總延遲、平均延遲、掃描行、返回行) |
statements_with_runtimes_in_95th_percentile / x$... | 平均延遲 TOP 5% 語句 |
statements_with_full_table_scans / x$... | 全表掃描語句 |
| 等待事件 | waits_global_by_latency / x$... | 全局等待事件總延遲排序 |
| 進程列表 | processlist / x$processlist、session / x$session | 增強版 SHOW PROCESSLIST,含進度報告 (MySQL 5.7.9+) |
| 版本/指標 | version、metrics | sys/MySQL 版本、服務器關鍵指標聚合 |
| 過程 | 核心功能 |
diagnostics(interval, iterations, channel) | 全維度健康檢查報告,輸出到文件 (tee diag.out;) |
statement_performance_analyzer() | 生成語句性能分析報告 (TOP SQL、全表掃描、臨時表、排序等) |
ps_trace_thread(thread_id, ...) | 線程級性能跟蹤,輸出 JSON 格式事件堆棧 |
ps_trace_statement_digest(digest, ...) | 按 Digest 跟蹤語句所有性能儀器點 |
ps_setup_enable/disable_instrument/consumer/thread | 動態調整 P_S 儀器點/消費者/線程採集 |
ps_setup_save/reload_saved/reset_to_default | 配置備份/恢復/重置 |
create_synonym_db() | 創建同義詞庫 (視圖指向目標庫表) |
table_exists(db, table) | 判斷表/視圖/臨時表是否存在 |
execute_prepared_stmt(sql) | 執行動態預備語句 |
ps_statement_avg_latency_histogram() | 語句平均延遲直方圖 |
ps_truncate_all_tables() | 清空所有 P_S 汇總表 |
| 函數 | 用途 | 示例 |
format_bytes(bytes) | 字節 → 可讀單位 | format_bytes(1073741824) = '1.00 GiB' |
format_time(picoseconds) | 皮秒 → 可讀時間 | format_time(1234567890123) = '1.23 s' |
format_statement(text) | SQL 截斷/格式化 | 受 statement_truncate_len 控制 |
format_path(path) | 路徑符號化 (datadir → @datadir) | format_path('/var/lib/mysql/db/t.ibd') = '@/db/t.ibd' |
extract_schema_from_file_name(path) | 從文件路徑解析 Schema 名 | -- |
extract_table_from_file_name(path) | 從文件路徑解析表名 | -- |
ps_thread_id(conn_id) | 連接 ID → 線程 ID | -- |
ps_thread_account(thread_id) | 線程 ID → 賬號 (user@host) | -- |
ps_thread_stack(thread_id) | 線程事件堆棧 (JSON) | -- |
ps_thread_trx_info(thread_id) | 線程事務信息 (JSON) | -- |
quote_identifier(str) | 加反引號 | quote_identifier('a b') = '`a b`' |
sys_get_config(var) | 讀取 sys_config 值 | -- |
version_major/minor/patch() | 解析 MySQL 版本號 | -- |
list_add/list_drop(csv, item) | 逗號分隔列表增刪 | -- |
ps_is_*_enabled() | 判斷賬號/消費者/儀器點/線程是否啟用 | 返回 YES/NO |
| 場景 | 推薦視圖/過程 | 關鍵指標 |
| 找出最耗資源的 SQL | statement_analysis、statements_with_runtimes_in_95th_percentile | avg_latency, exec_count, rows_examined |
| 定位鎖爭用 | innodb_lock_waits | wait_age_secs, locked_table, waiting_trx_id |
| 分析 IO 熱點文件 | io_global_by_file_by_latency | latency, count, bytes |
| 檢查冗余/未用索引 | schema_redundant_indexes、schema_unused_indexes | index_name, reason |
| 全庫健康巡檢報告 | CALL diagnostics(60, 10, 'current'); | 輸出文件含版本、變量、InnoDB 狀態、進程列表、內存、P_S 狀態 |
| 線程級深度跟蹤 | CALL ps_trace_thread(conn_id, '/tmp/trace.json', 30, 0.1, TRUE); | 生成 JSON 含語句、階段、等待、鎖事件 |
| 動態調整採集範圍 | CALL ps_setup_enable_instrument('statement'); 等 | 即時生效,無需重啟 |