如何提高sql語句的執行效率

來源:互聯網
上載者:User
1. SQL最佳化的原則是:將一次操作需要讀取的BLOCK數減到最低,即在最短的時間達到最大的資料輸送量。
調整不良SQL通常可以從以下幾點切入:
? 檢查不良的SQL,考慮其寫法是否還有可最佳化內容
? 檢查子查詢 考慮SQL子查詢是否可以用簡單串連的方式進行重新書寫
? 檢查最佳化索引的使用
? 考慮資料庫的最佳化器

2. 避免出現SELECT * FROM table 語句,要明確查出的欄位。

3. 在一個SQL語句中,如果一個where條件過濾的資料庫記錄越多,定位越準確,則該where條件越應該前移。

4. 查詢時儘可能使用索引覆蓋。即對SELECT的欄位建立複合索引,這樣查詢時只進行索引掃描,不讀取資料區塊。

5. 在判斷有無合格記錄時建議不要用SELECT COUNT (*)和select top 1 語句。

6. 使用內層限定原則,在拼字SQL語句時,將查詢條件分解、分類,並盡量在SQL語句的最裡層進行限定,以減少資料的處理量。

7. 應絕對避免在order by子句中使用運算式。

8. 如果需要從關聯表讀資料,關聯的表一般不要超過7個。

9. 小心使用 IN 和 OR,需要注意In集合中的資料量。建議集合中的資料不超過200個。

10. <> 用 < 、 > 代替,>用>=代替,<用<=代替,這樣可以有效利用索引。

11. 在查詢時盡量減少對多餘資料的讀取包括多餘的列與多餘的行。

12. 對於複合索引要注意,例如在建立複合索引時列的順序是F1,F2,F3,則在where或order by子句中這些欄位出現的順序要與建立索引時的欄位順序一致,且必須包含第一列。只能是F1或F1,F2或F1,F2,F3。否則不會用到該索引。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.