- WHERE 前導(dǎo)列一定是使用最頻繁的列邑蒋。
- 數(shù)據(jù)庫(kù)備注姓蜂,字段備注,存儲(chǔ)過(guò)程備注医吊,存儲(chǔ)過(guò)程變量備注钱慢。
- 主鍵定義,索引定義遮咖,字符集定義滩字,數(shù)據(jù)庫(kù)表引擎定義。
- 字段類型一定要選擇最佳御吞,字段全部NOT NULL麦箍,固定長(zhǎng)度字段。
- 縮進(jìn)陶珠。
- 永遠(yuǎn)不要出現(xiàn)星號(hào)挟裂。
- INSERT INTO 寫全字段名。
- 行級(jí)操作在存儲(chǔ)過(guò)程揍诽,字段操作在Web服務(wù)器诀蓉。
- 必設(shè)主鍵栗竖。
- 數(shù)字/字符。
- 有限的取值用ENUM渠啤。
- IN / NOT IN / OUT / OR / != / <> 引起索引失效狐肢。
- 盡量不要在列上進(jìn)行操作。
- DELETE / INSERT 鎖表沥曹。
禁止使用循環(huán)份名。
禁止使用游標(biāo)。
禁止使用超過(guò)15句sql語(yǔ)句妓美。
禁止兩層以上sql語(yǔ)句嵌套僵腺。
變量使用前一定要定義,定義一定要在最前方壶栋。
只能使用單層IF THEN ELSE辰如。
-
單條記錄返回一定要加LIMIT 1,避免全表掃描贵试。
8.存儲(chǔ)過(guò)程內(nèi)部禁止再調(diào)用存儲(chǔ)過(guò)程琉兜。
9.對(duì)于只讀存儲(chǔ)過(guò)程,Read Committed事務(wù)毙玻。
10.全部存儲(chǔ)過(guò)程名字需要加注釋呕童。
11.全部字段名稱需要加注釋。
12.日期時(shí)間函數(shù)盡量用TIMESTAMP 而不是DATETIME類型淆珊。
13.GROUP BY 與ORDER BY 與DISTINCT 不要連用。
14.DISTINCT與LIMIT聯(lián)合使用奸汇,比GROUP BY要好很多施符。
15.SELECT * FROM (SELECT * FROM chu ORDER BY b desc,a desc LIMIT 100) AS a GROUP BY a.b;
16.禁止使用UNION,以及超過(guò)5個(gè)表的聯(lián)合查詢擂找。
17.每一句SQL戳吝,都需要有詳細(xì)注釋。SELECT a.col_a, b.col_b FROM tb_a AS a, tb_b AS b WHERE a.col_2 = b.vol_2;