top
Loading...
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_privcolumns_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()是一個找出是否查詢有問題的優秀的工具。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗