7.2.優化SELECT語句和其它查詢
7.2. 優化SELECT語句和其它查詢
- 7.2.1.
EXPLAIN語法(獲取SELECT相關信息)
- 7.2.2. 估計查詢性能
- 7.2.3. SELECT查詢的速度
-
7.2.4. MySQL怎樣優化WHERE子句
- 7.2.5. 范圍優化
- 7.2.6. 索引合并優化
-
7.2.7. MySQL如何優化IS NULL
-
7.2.8. MySQL如何優化DISTINCT
- 7.2.9. MySQL如何優化LEFT JOIN和RIGHT JOIN
- 7.2.10. MySQL如何優化嵌套Join
- 7.2.11. MySQL如何簡化外部聯合
-
7.2.12. MySQL如何優化ORDER BY
-
7.2.13. MySQL如何優化GROUP BY
-
7.2.14. MySQL如何優化LIMIT
- 7.2.15. 如何避免表掃描
- 7.2.16. INSERT語句的速度
- 7.2.17. UPDATE語句的速度
- 7.2.18. DELETE語句的速度
- 7.2.19. 其它優化技巧
首先,影響所有語句的一個因素是:你的許可設置得越復雜,所需要的開銷越多。
執行GRANT語句時使用簡單的許可,當客戶執行語句時,可以使MySQL降低許可檢查開銷。例如,如果未授予任何表級或列級權限,服務器不需要檢查tables_priv和columns_priv表的內容。同樣地,如果不對任何 賬戶進行限制,服務器不需要對資源進行統計。如果查詢量很高,可以花一些時間使用簡化的授權結構來降低許可檢查開銷。
如果你的問題是與具體MySQL表達式或函數有關,可以使用mysql客戶程序所帶的BENCHMARK()函數執行定時測試。其語法為BENCHMARK(loop_count,expression)。例如:
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
上面結果在PentiumII 400MHz系統上獲得。它顯示MySQL在該系統上在0.32秒內可以執行1,000,000個簡單的+表達式運算。
所有MySQL函數應該被高度優化,但是總有可能有一些例外。BENCHMARK()是一個找出是否查詢有問題的優秀的工具。