資料庫開發的36條軍規
核心軍規
▲盡量不在數據庫做運算
▲控制單表數據量純INT不超過10M條,含Char不超過5M條
▲保持表身段苗條
▲平衡範式和冗餘
▲拒絕大SQL,複雜事務,大批量任務
字段類軍規
▲用好數值字段,盡量簡化字段位數
▲把字符轉化為數字
▲優先使用Enum或Set
▲避免使用Null字段
▲少用並拆封Text/Blob
▲不在數據庫中存圖片
索引類軍規
▲謹慎合理添加索引
▲字符字段必須建立前綴索引?
▲不在索引列做運算
▲自增列或全局ID做InnoDB主鍵
▲盡量不用外鍵
SQL類軍規
▲SQL盡可能簡單
▲保持事務連接短小
▲盡可能避免使用SP/Trigger/Function
▲盡量不用Select *
▲改寫Or為IN()
▲改寫Or為Union
▲避免負向查詢和%前綴模糊查詢
▲Count不要使用在可Null的字段上面
▲減少Count(*)
▲Limit高效分頁,SELECT * FROM message WHERE id > 9527 (or sub select) limit 10
▲使用Union ALL 而不用Union
▲分解鏈接,保證高並發
▲Group By 去除排序
▲同數據類型的列值比較
▲Load Data導入數據,比Insert快20倍
▲打散大批量更新,盡量凌晨操作
約定類軍規
▲隔離線上線下
▲禁止未經DBA認證的子查詢
▲永遠不在程序段顯式加鎖
▲表字符集統一使用UTF8MB4
留言
張貼留言