當前位置:
首頁 > 知識 > MySQL資料庫開發的36條鐵律

MySQL資料庫開發的36條鐵律

來自一線的實戰經驗,主要針對DBA和後端開發人員,總是在災難發生後,才想起容災的重要性;總是在吃過虧後,才記得曾經有人提醒過。文末是詳細的視頻講解和PD下載

核心軍規

  1. 盡量不在資料庫做運算
  2. 控制單表數據量 純INT不超過10M條,含Char不超過5M條
  3. 保持表身段苗條
  4. 平衡範式和冗餘
  5. 拒絕大SQL,複雜事務,大批量任務

欄位類軍規

  1. 用好數值欄位,盡量簡化欄位位數
  2. 把字元轉化為數字
  3. 優先使用Enum或Set
  4. 避免使用Null欄位
  5. 少用並拆封Text/Blob
  6. 不在資料庫中存圖片

索引類軍規

  1. 謹慎合理添加索引
  2. 字元欄位必須建立前綴索引?
  3. 不在索引列做運算
  4. 自增列或全局ID做InnoDB主鍵
  5. 盡量不用外鍵

SQL類軍規

  1. SQL儘可能簡單
  2. 保持事務連接短小
  3. 儘可能避免使用SP/Trigger/Function
  4. 盡量不用Select *
  5. 改寫Or為IN()
  6. 改寫Or為Union
  7. 避免負向查詢和%前綴模糊查詢
  8. Count不要使用在可Null的欄位上面
  9. 減少Count(*)
  10. Limit高效分頁,SELECT * FROM message WHERE id > 9527 (or sub select) limit 10
  11. 使用Union ALL 而不用Union
  12. 分解鏈接,保證高並發
  13. Group By 去除排序
  14. 同數據類型的列值比較
  15. Load Data導入數據,比Insert快20倍
  16. 打散大批量更新,盡量凌晨操作

約定類軍規

  1. 隔離線上線下
  2. 禁止未經DBA認證的子查詢
  3. 永遠不在程序段顯式加鎖
  4. 表字符集統一使用UTF8MB4

MySQL資料庫開發的36條鐵律

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

遞歸函數及匿名函數配合內置函數的使用
一個製作Web圖案的組件css-doodle

TAG:程序員小新人學習 |