MySQL 從5.1開始,提供了關於優化器選項的開關選項。 這樣,我們可以強制在優化器糊塗的時候,關閉一些我們認為不該做的事情;或者是當我們想查看優化器為什麼要這麼選擇的時候,可以手動關閉或者打開這些選項來進行優化策略的改變。
MySQL 5.1 增加以下開關:
MySQL 5.5 新增以下開關:
MySQL 5.6 增加以下開關:
1. mrr
2. batched_key_access
3. block_nested_loop
4. index_condition_pushdown
5. use_index_extensions
6. semijoin
mysql> select b.class_name from class as b, student as a where a.class_id = b.id;
+------------+
| class_name |
+------------+
| xinxi |
| xinxi |
+------------+
2 rows in set (0.00 sec)
7. firstmatch
8. loosescan
9. materialization