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/

Related Posts:

  • 網頁開發(1) 使用 IE 瀏覽器時 Javascript 失效我本人非專業寫網頁,大學沒寫過是進公司才學的,因為沒人維護XD 公司常用瀏覽器是 IE,因為IE可以直接讓你以檔案總管的方式直接開啟 file://... 的超連結,其他瀏覽器都會擋,詳細原因我不知道,但這個可以讓你方便調用 SERVER 上資料,方便很多,其實其他瀏覽器也可以辦到,但要做設定,但不可能你叫公司員工都做這設定,所以大家都用 IE,離題了... JS 檔放到 Server 後無反應     我自己在寫程式時,第… Read More
  • LINUX - cURL 筆記 cURL - Client URL     cURL is a command-line tool for getting or sending data including files using URL syntax。網站在開發 Restful API 時,測試會用到的最基本工具。這邊紀錄一些常用的參數 基本的 request # Default 是 GET curl http://loca… Read More
  • MySQL with "localhost" 前言      移植(複製)系統後,新系統很慢      事情是這樣的,公司成立分部,鑑於前輩們 (都走了) 建的系統很好用      公司讓我去建一個到分部,我心裡 OS : 複製貼上我最會 !!      一切都很順利,安裝  PHP 然後 Hello World ~~     &nb… Read More
  • 重新踏入網頁開發 (4) - Dependency injection 耦合性 (Coupling,dependency)     耦合性是指一程式中,模組及模組之間資訊或參數依賴的程度。低耦合性是結構良好程式的特性,低耦合性程式的可讀性及可維護性會比較好。舉例來說 Module A 使用了 Module B 功能, 今天 Module B 更改了功能而造成 Module A 必須也更改使用其功能的邏輯, 則會說 Module A 對 Module B 依賴程度高, 具有高耦合性。所以你要維護 … Read More
  • Node.js - 支援 ES6 module Nodejs 支援 ES6 module     要讓 nodejs 去支援 ES6 module,必須去改寫 package.json。     開啟一個新的 nodejs project 首先是 node package manager npm init # 應該會有一堆要填的,若沒任何想法可以改下 npm init -y 自動幫你填完 這時候多一個 package.… Read More

0 意見:

張貼留言

Popular Posts