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

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