1?一個業務保證在同一事務中
2?SQL語句的SQL保留字大寫
3?不要寫SELECT * FROM xxx, 請將需要的字段名稱寫出來
4?Insert語句一定要給出要插入值的字段列表,以保證更改了表結構增加了字段也不會影響現有系統的運行
5?兩張以上的表請使用別名,別名使用1到3個字符表示
6?多表連接時,使用表的別名來引用列
7?不許出現帶參數的sql語句拼接,所有的參數必須用參數化傳進語句中
8?不等于統一使用<>,不使用!=
9?判空,統一使用IS NULL
10?存儲過程中不允許進行 COMMIT 或者Rollback操作,所有這些操作都在存儲過程外面統一處理
11?盡量少用嵌套查詢,在查詢字段中不允許出現子查詢
12?盡量用多表連接代替EXISTS子句
13?盡量用EXISTS代替DISTINCT
14?盡量用EXISTS代替IN
15?盡量用NOT EXISTS代替NOT IN
16?盡量用UNION ALL代替UNION(如果可以)
17?查詢的WHERE過濾原則,應使過濾記錄數最多的條件放在最前面
18?盡量避免對索引列進行計算,查詢時要盡可能將操作移至等號右邊
19?大量的排序操作影響系統性能,所以盡量減少order by和group by操作。如必須使用排序操作,排序盡量建立在有索引的列上
20?對于索引的比較,盡量避免使用NOT
21?避免使用distinct ,可以使用not exist等替換;
22?避免使用自增字段,使用sequence替代;
23?避免把日期字段字符串化比較,可以使用>= ,< 等比較符替換;
24?大家養成使用explain查看執行計劃的習慣,特別是對多表聯接和數據量大的表進行查詢等;
25?盡量避免使用 like “%...."的情況;
26?避免使用 select ... from ...where ... for update limit 1 這樣的sql,可以使用查詢返回一個list,然后遍歷進行 select? ... for update ,成功鎖住一條以后,進行其他的業務處理;
27?避免對datetime字段進行截斷保存,如有需要可以在顯示的地方進行截斷;
28?避免讓db做一些額外的事情,特別是一些界面顯示相關的格式化工作;
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
