盡量不在資料庫做運算
控制單錶資料量
保持表身段苗條
平衡正規化與冗餘
拒絕3b(大sql、大事物、大批量)
用好數值字段型別
將字元轉化為數字
優先使用enum或set
避免使用null欄位
少用並拆分text/blob
不在資料庫裡存放
謹慎合理新增索引
字元字段必須建立字首索引
不在索引列做運算
自增或全域性id做innodb主鍵
盡量不用外來鍵
sql語句盡可能簡單
保持事務短小
盡可能避免使用sp/trig/func
盡量不用select *
改寫or語句
避免負向查詢和%字首模糊查詢
減少count(*)
limit高效分頁
用union all而非union
分解聯接保證高併發
group by去掉排序
同資料型別的列值比較
load data匯入資料
打散大批量更新
know every sql!
隔離線上線下
禁止未經dba確認的子查詢
永遠不在程式端顯示加鎖
統一字符集為utf8
統一命名規範
MySQL 資料庫開發的 36 條軍規
mysql 資料庫開發的 36 條軍規 寫在前面的話 總是在災難發生後,才想起容災的重要性 總是在吃過虧後,才記得曾經有人提醒過。一 核心軍規 1 不在資料庫做運算 cpu計算務必移至業務層 2 控制單錶資料量 單錶記錄控制在1000w 3 控制列數量 字段數控制在20以內 4 平衡正規化與冗餘 為...
MySQL資料庫開發的 36 條軍規
來自一線的實戰經驗,主要針對dba和後端開發人員,總是在災難發生後,才想起容災的重要性 總是在吃過虧後,才記得曾經有人提醒過。核心軍規 盡量不在資料庫做運算 控制單錶資料量 純int不超過10m條,含char不超過5m條 保持表身段苗條 平衡正規化和冗餘 拒絕大sql,複雜事務,大批量任務 欄位類軍...
MySQL資料庫開發的 36 條軍規!
一 核心軍規 盡量不在資料庫做運算 控制單錶資料量 純int不超過10m條,含char不超過5m條 保持表身段苗條 平衡正規化和冗餘 拒絕大sql,複雜事務,大批量任務 二 欄位類軍規 用好數值字段,盡量簡化字段位數 把字元轉化為數字 優先使用enum或set 避免使用null欄位 少用並拆封tex...