mysql默认值无效_MySQL开发规范
一、基礎規范
1) 使用InnoDB存儲引擎
2) 數據庫字符集使用UTF8,校對字符集使用utf8_general_ci
3) 所有表、字段都盡量添加注釋
4) 庫名、表名、字段名使用小寫字母,禁止超過32個字符,須見名知意
5) 非唯一索引以 “idx_字段1_字段2” 命名,唯一索引必須以 “uniq_字段1_字段2” 命名
二、查詢規范
1) SQL語句盡可能簡單,大的SQL想辦法拆分成小的SQL實現
2) 不要使用SELECT * ,查詢具體要用到的字段
3) 禁止like做where條件(會全表掃描且不能用索引)
4) 除非必要,避免使用 != 等非等值操作符(會導致用不到索引)
5) Where條件里不要對列使用函數(不會引用索引)
6) 能確定返回結果只有一條時,使用limit 1(LIMIT分頁注意效率,LIMIT越大,效率越低)
7) 少用子查詢,改用JOIN(子查詢要在內存里建臨時表)
8) 多表JOIN的字段,區分度最大的字段放在前面
9) IN條件里的數據數量要盡量少,超過200個用EXIST代替IN
10) Where字句中同一個表的不同字段組合建議小于5組(否則考慮分表)
11) 禁止單條語句同時更新多個表
12) 事務要盡量簡單,整個事務的時間長度不要太長
三、表設計規范
1) 用DECIMAL代替FLOAT和DOUBLE存儲精確浮點數(精確數據)
2) 使用TINYINT代替ENUM類型(便于遷移時兼容)
3) 盡可能不使用TEXT、BLOB類型(該數據類型不能設置默認值、不便于排序、不便于建立索引)
4) 同一意義的字段設計定義必須相同(便于聯表查詢)
5) 所有字段均定義為NOT NULL(避免使用NULL字段,NULL字段很難查詢優化,NULL字段的索引需要額外空間,NULL字段的復合索引無效)
6) 表必須有主鍵,不使用更新頻繁的列做主鍵、盡量不使用字符串列做主鍵,盡量使用非空的唯一自增鍵做主鍵
四、索引設計規范
1) 單表索引數量不超過10個
2) 單個字段不要超過兩個索引
3) 新建的唯一索引必須不能和主鍵重復
4) 避免冗余和重復索引
5) 盡量不要在頻繁更新的列上建立索引
6) 不在低基數列上建立索引,例如狀態、類型等
7) 不在索引列進行數學運算和函數運算(參與了運算的列不會引用索引)
8) 復合索引須符合最左前綴的特點建立索引(mysql使用復合索引時從左向右匹配)
9) 重要的SQL中where條件里的字段必須被索引
10) Where條件里的字段順序與索引順序無關,優化器會自動調整
11) 索引選擇性= Cardinality / Total Rows,即基數 ÷ 數據行數,值越接近1說明使用索引的過濾效果越好
12) 建立索引時,務必先explain,查看索引使用情況
總結
以上是生活随笔為你收集整理的mysql默认值无效_MySQL开发规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用php写软件老吴p,11.32 p
- 下一篇: python中的元类_Python中的元