2019年5月3日 星期五

MySQL 利用執行順序提高效率

MySQL 利用執行順序提高效率


因為公司的內部網站平常有點慢,後來又架了個在美國的 Server
原本的小問題就被放大,雖然優化網站的方式主要不是靠 SQL的改進

最普通的優化就是不要用 SELECT * ,理由顯而易見,資料越多搜尋越慢
依照這點,所以要讓搜尋的資料越少,就要利用明確的條件去限制搜尋
也就是利用 SQL 的執行順序

SQL 的執行順序如下 :
  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE 或 WITH ROLLUP
  7. HAVING
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. Top / limit
所以可以改進的就是 ON 跟 WHERE
而且 ON 在 JOIN 前,所以我們要利用 ON 把 Table 的資料降到最小

所以好的 SQL 我認為應該是,利用 ON 來把資料降到最小,甚至到不用 WHERE 的程度

參考資料 :
https://docs.microsoft.com/
http://pclevinblog.pixnet.net/blog/

0 意見:

張貼留言

Popular Posts