优化器可以做什么?
MySQL 的優化器能處理哪些優化類型呢?
舉兩個簡單的例子:
1、當我們對多張表進行關聯查詢的時候,以哪個表的數據作為基準表。
2、有多個索引可以使用的時候,選擇哪個索引。
實際上,對于每一種數據庫來說,優化器的模塊都是必不可少的,他們通過復雜的算法實現盡可能優化查詢效率的目標。
如果對于優化器的細節感興趣,可以看看《數據庫查詢優化器的藝術-原理解析與SQL性能優化》。
但是優化器也不是萬能的,并不是再垃圾的SQL 語句都能自動優化,也不是每次都能選擇到最優的執行計劃,大家在編寫SQL 語句的時候還是要注意。?
如果我們想知道優化器是怎么工作的,它生成了幾種執行計劃,每種執行計劃的cost是多少,應該怎么做?
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
- 上一篇: 什么是优化器?
- 下一篇: 优化器是怎么得到执行计划的?