提高系統效能——對SQL語句最佳化的思考

來源:互聯網
上載者:User

      軟體在研發的過程中自始至終都在留意著系統的可擴充性,但與此同時也在關注著系統的效能,SQL語句作為系統效能的一環不容忽視,從今天開始結合開發的經驗,談一下我對SQL語句最佳化的理解和認知:

     1、在聯集查詢語句中做到小表驅動大表:

     聯集查詢是常用到的一種查詢方式,左串連、右串連、內串連等等時不時地被應用在查詢語句中,然而在這一過程中如果能判明各表的資料量,那就再好不過了,在這種情況下from後面應該緊跟資料量小的表,為什嗎?呵呵呵,比如a表有1000條資料,b表有20條資料,使用左串連進行聯集查詢如果a表驅動b表,那麼b表就要被訪問1000次,但如果b表驅動a表,a只要被訪問20次,其效能可想而知。

     2、不要使用in+子查詢

     請注意,我這裡並沒有說不要使用in查詢,假如in中的值是給定的,而不是通過select從其它表中查詢取得,那麼使用in關鍵字也無可厚非,但是假如in中的資料是通過select從其它表中查詢取得的,強烈建議將其改為聯集查詢的方式,具體方法請參看部落格《SQL語句最佳化——in,not in,exists,not exists, left join...on》.

     3、注意where關鍵字後面查詢條件的順序,將尚未給定值的查詢條件放到最後面,將給定的非模糊查詢條件放到最前面;

        本部落格持續更新中,敬請期待。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.