国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫策劃規范

2024-07-24 12:35:48
字體:
來源:轉載
供稿:網友
       MySQL數據庫設計規范:

  1. 規范背景與目的
  MySQL數據庫與 Oracle、 SQL Server 等數據庫相比,有其內核上的優勢與劣勢。我們在使用MySQL數據庫的時候需要遵循一定規范,揚長避短。本規范旨在幫助或指導RD、QA、OP等技術人員做出適合線上業務的數據庫設計。在數據庫變更和處理流程、數據庫表設計、SQL編寫等方面予以規范,從而為公司業務系統穩定、健康地運行提供保障。
 
  2. 設計規范
  2.1 數據庫設計
  以下所有規范會按照【高危】、【強制】、【建議】三個級別進行標注,遵守優先級從高到低。
 
  對于不滿足【高危】和【強制】兩個級別的設計,DBA會強制打回要求修改。
 
  2.1.1 庫名
 
  【強制】庫的名稱必須控制在32個字符以內,相關模塊的表名與表名之間盡量提現join的關系,如user表和user_login表。
  【強制】庫的名稱格式:業務系統名稱_子系統名,同一模塊使用的表名盡量使用統一前綴。
  【強制】一般分庫名稱命名格式是庫通配名_編號,編號從0開始遞增,比如wenda_001以時間進行分庫的名稱格式是“庫通配名_時間”
  【強制】創建數據庫時必須顯式指定字符集,并且字符集只能是utf8或者utf8mb4。創建數據庫SQL舉例:create database db1 default character set utf8;。
  2.1.2 表結構
 
  【強制】表和列的名稱必須控制在32個字符以內,表名只能使用字母、數字和下劃線,一律小寫。
  【強制】表名要求模塊名強相關,如師資系統采用”sz”作為前綴,渠道系統采用”qd”作為前綴等。
  【強制】創建表時必須顯式指定字符集為utf8或utf8mb4。
  【強制】創建表時必須顯式指定表存儲引擎類型,如無特殊需求,一律為InnoDB。當需要使用除InnoDB/MyISAM/Memory以外的存儲引擎時,必須通過DBA審核才能在生產環境中使用。因為Innodb表支持事務、行鎖、宕機恢復、MVCC等關系型數據庫重要特性,為業界使用最多的MySQL存儲引擎。而這是其他大多數存儲引擎不具備的,因此首推InnoDB。
 
  【建議】存儲金錢的字段,建議用int,程序端乘以100和除以100進行存取。因為int占用4字節,而double占用8字節,空間浪費。
  【建議】文本數據盡量用varchar存儲。因為varchar是變長存儲,比char更省空間。MySQL server層規定一行所有文本最多存65535字節,因此在utf8字符集下最多存21844個字符,超過會自動轉換為mediumtext字段。而text在utf8字符集下最多存21844個字符,mediumtext最多存2^24/3個字符,longtext最多存2^32個字符。一般建議用varchar類型,字符數不要超過2700。
  【建議】時間類型盡量選取timestamp。因為datetime占用8字節,timestamp僅占用4字節,但是范圍為1970-01-01 00:00:01到2038-01-01 00:00:00。更為高階的方法,選用int來存儲時間,使用SQL函數unixtimestamp()和fromunixtime()來進行轉換。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉鱼县| 达州市| 贺州市| 东明县| 云梦县| 宝应县| 阿拉尔市| 寻甸| 灵璧县| 宁陵县| 宜黄县| 潢川县| 米泉市| 上思县| 新乡市| 潜江市| 鄂伦春自治旗| 常山县| 东平县| 鸡泽县| 高州市| 喀喇沁旗| 稻城县| 嘉祥县| 鄂托克前旗| 吴忠市| 民乐县| 读书| 霸州市| 墨江| 永宁县| 丹东市| 大城县| 甘泉县| 广东省| 鞍山市| 东至县| 长沙县| 肇庆市| 邵阳市| 奉新县|