MySQL規范


一、MySQL數據庫命名規范

  1. 數據庫所有表前綴均使用項目名稱首字母縮寫;
  2. 數據庫所有對象名稱均使用小寫字母,並且單詞之間通過下划線分開;
  3. 數據庫臨時表必須以 pro_tmp_ 為前綴並且以日期 _20190917 為后綴,備份表必須以 pro_bac_ 為前綴並以時間戳為后綴;(pro為項目名稱首字母縮寫);
  4. 數據庫所有存儲相同數據的列名和列類型必須保持一致。

二、MySQL數據庫基本設計規范

  1. 若無特殊說明,建表時一律采用Innodb存儲引擎;

    選擇合適的引擎可以提高數據庫性能,如InnoDB和MyISAM,InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型,這兩個表類型各有優劣,視具體應用而定;基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持;MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持以及外部鍵等高級數據庫功能;因此,其支持事務處理、支持外鍵、支持崩潰修復能力和並發控制是我們建表時首選的存儲引擎。

  2. 數據庫和表的字符集統一使用UTF8;

    數據庫和表的字符集統一使用utf8,若是有字段需要存儲emoji表情之類的,則將表或字段設置成utf8mb4;因為,utf8號稱萬國碼,其無需轉碼、無亂碼風險且節省空間,而utf8mb4又向下兼容utf8。

  3. 設計數據庫時所有表和字段必須添加注釋;
  4. 單個表的數據量大小控制在500萬以內;
  5. 使用MySQL分區表需謹慎;
  6. 盡量滿足冷熱數據分離,減小表等寬度;
  7. 建立預留字段需謹慎;
  8. 數據庫中禁止存儲圖片、文件等大的二進制數據。

三、MySQL數據庫字段設計規范

  1. 優先選擇符合存儲需要的最小的數據類型;
  2. 避免使用TEXT、BLOB數據類型;
  3. 避免使用ENUM枚舉類型;
  4. 使用TIMESTAMP(4字節)或DATETIME(8字節)類型存儲時間;
  5. 財務相關的金額類數據必須使用decimal 類型。

四、MySQL索引設計規范

  1. 每張表的索引數量不超過5個;
  2. 每個Innodb 表必須有一個主鍵;
  3. 盡量避免使用外鍵約束。

五、MySQL數據庫SQL開發規范

  1. 在明顯不會有重復值時使用UNION ALL 而不是UNION;

    1)UNION 會把兩個結果集的所有數據放到臨時表中后再進行去重操作;

    2)UNION ALL 不會再對結果集進行去重操作;

  2. 把復雜、較長的SQL 拆分為為多個小SQL 執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM