SQL編程技巧java
轉至元數據結尾mysql
被賈海偉添加,被賈海偉最後更新於十二月 29, 2015 (查看更改) 轉至元數據起始sql
一、SQL儘可能採用標準SQL,有利於移植。數據庫
好比Oracle中,CUD操做支持給表加別名,可是mysql中不支持。編程
若是數據庫從oracle遷移到mysql,則須要修改SQL。oracle
二、在寫SQL的時候,採用可讀性好的格式。code
例如:1行表示一個項目,SQL關鍵字保持在同一列,非SQL關鍵字縮進索引
SELECT COUNT(1) FROM T_AUTH_USER WHERE LOGIN_NAME = #{userName} AND XXX = YYY GROUP BY AAA, BBB ORDER BY CCC, EEE
三、給查詢頻率高的表添加索引,提供查詢效率。class
四、能用一條SQL完成的,不用兩條SQL完成。效率
五、能用兩條或多條SQL完成的,不用帶遊標的存儲過程。
六、能用帶遊標的存儲過程完成的,不用JAVA實現。
七、大表查詢不用in/not in,用exists/not exists代替。
八、大表清空數據,採用truncate代替delete。
九、限制工做數據集的大小,過濾掉一切沒必要要的數據。
十、只選擇你須要的字段,杜絕使用select *查詢。
十一、杜絕使用select count(*),使用select count(1) 代替。
十二、不要查詢沒必要要的表。
1三、儘可能避免在JOIN和WHERE子句中進行計算。
1四、特殊場景下使用1=1,1=2組合查詢條件。
"1=1"表示所有選擇,"1=2"表示所有不選。