MySQL数据库开发的 36 条军规
生活随笔
收集整理的這篇文章主要介紹了
MySQL数据库开发的 36 条军规
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自??MySQL數據庫開發的 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
總結
以上是生活随笔為你收集整理的MySQL数据库开发的 36 条军规的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java并发编程之4——Java锁分解锁
- 下一篇: 达到年薪 40W 必需掌握的技术。