MySQL執行計劃優化sql
什么是執行計劃
執行計劃是MySQL對于SQL語句執行的一種解析結果,它展示了MySQL執行SQL的算法、步驟和預計消耗的資源。執行計劃的基本目的是為了優化SQL語句的執行性能。
如何優化SQL語句
針對執行計劃,可以通過調整MySQL的優化器參數、索引調整等方式進行優化。一般來說,優化思路如下:
1、監控SQL的執行情況,了解執行計劃的結果,分析SQL執行過程中的瓶頸;
2、根據執行計劃的結果,調整MySQL的優化器參數等;
3、考慮增加或者修改索引,優化SQL查詢過程中的I/O和CPU資源消耗等;
4、進行SQL語句的重構,減少不必要的復雜度,降低資源耗費。
如何查看執行計劃
MySQL對于查看執行計劃提供了多種方式:
1、使用EXPLAIN關鍵字查看執行計劃,如EXPLAIN SELECT * FROM user WHERE name='John';
2、使用SHOW PROFILE查看MySQL執行過程中的所有過程;
3、在MySQL服務器中,通過設置slow_query_log參數,使得當前執行時間超過設定時間的SQL語句在slow_log中記錄執行過程,以供后期分析。
執行計劃的指標含義
執行計劃提供了豐富的指標,其中FEILD、TYPE、EXTRA等指標是比較關鍵的:
1、FEILD:表示字段的值,包括ID、SELECT_TYPE、TABLE、PARTITIONS、TYPE、POSSIBLE_KEYS、KEY、KEY_LEN、REF、ROWS和EXTRA;
2、TYPE:表示MySQL使用的訪問方法,常見值如ALL、index、range、ref等;
3、EXTRA:表示MySQL對于該步驟的優化信息,常見值如Using index、Using where等。