技巧1 比較運算符能用 「=」就不用「<>」數據庫
「=」增長了索引的使用概率。服務器
網絡
「LIMIT 1」能夠避免全表掃描,找到對應結果就不會再繼續掃描了。性能
技巧3 爲列選擇合適的數據類型測試
能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盤和內存消耗越小越好嘛。優化
技巧4 將大的DELETE,UPDATE or INSERT 查詢變成多個小查詢spa
能寫一個幾十行、幾百行的SQL語句是否是顯得逼格很高?然而,爲了達到更好的性能以及更好的數據控制,你能夠將他們變成多個小查詢。blog
技巧5 使用UNION ALL 代替 UNION,若是結果集容許重複的話索引
由於 UNION ALL 不去重,效率高於 UNION。 內存
技巧6 爲得到相同結果集的屢次執行,請保持SQL語句先後一致
這樣作的目的是爲了充分利用查詢緩衝。
好比根據地域和產品id查詢產品價格,第一次使用了:
那麼第二次一樣的查詢,請保持以上語句的一致性,好比不要將where語句裏面的id和region位置調換順序。
技巧7 儘可能避免使用 「SELECT *」
若是不查詢表中全部的列,儘可能避免使用 SELECT *,由於它會進行全表掃描,不能有效利用索引,增大了數據庫服務器的負擔,以及它與應用程序客戶端之間的網絡IO開銷。
技巧8 WHERE 子句裏面的列儘可能被索引
只是「儘可能」哦,並非說全部的列。因地制宜,根據實際狀況進行調整,由於有時索引太多也會下降性能。
技巧9 JOIN 子句裏面的列儘可能被索引
一樣只是「儘可能」哦,並非說全部的列。
技巧10 ORDER BY 的列儘可能被索引
ORDER BY的列若是被索引,性能也會更好。
技巧11 使用 LIMIT 實現分頁邏輯
不只提升了性能,同時減小了沒必要要的數據庫和應用間的網絡傳輸。
技巧12 使用 EXPLAIN 關鍵字去查看執行計劃
EXPLAIN 能夠檢查索引使用狀況以及掃描的行。
其餘