MySQL 內建 profiling 功能可詳細剖析 SQL 執行各階段耗時,無需第三方工具即可定位效能瓶頸。
SHOW VARIABLES LIKE '%profiling%';
SET profiling = 1;
SELECT goods_name FROM ecs_goods WHERE goods_id < 5000;
SHOW PROFILES;
SHOW PROFILE FOR QUERY 4;
SHOW PROFILE [type [, type] ...] [FOR QUERY n] [LIMIT row_count [OFFSET offset]]
type: ALL | BLOCK IO | CONTEXT SWITCHES | CPU | IPC | MEMORY | PAGE FAULTS | SOURCE | SWAPS
ALL:完整時間線,適合初步排查CPU + BLOCK IO:定位計算密集 vs I/O 密集SOURCE:定位到具體原始碼函數(需 debug build)CONTEXT SWITCHES:檢查執行緒切換開銷Performance Schema 或 EXPLAIN ANALYZE