国产探花免费观看_亚洲丰满少妇自慰呻吟_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()來進行轉換。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尉犁县| 兴义市| 武夷山市| 龙井市| 新化县| 澄迈县| 云林县| 南陵县| 焦作市| 兴宁市| 隆安县| 开封市| 松江区| 额济纳旗| 新巴尔虎右旗| 陆良县| 会昌县| 闻喜县| 崇左市| 正镶白旗| 南投县| 莱阳市| 双流县| 丰镇市| 梁山县| 山东省| 清丰县| 五河县| 肇州县| 体育| 邹城市| 穆棱市| 宣威市| 金堂县| 新河县| 长顺县| 河西区| 常宁市| 刚察县| 彩票| 彩票|