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

首頁 > 數據庫 > MySQL > 正文

mysql數據庫開發規范【推薦】

2024-07-24 12:51:05
字體:
來源:轉載
供稿:網友

最近一段時間一邊在線上抓取SQL來優化,一邊在整理這個開發規范,盡量減少新的問題SQL進入生產庫。今天也是對公司的開發做了一次培訓,PPT就不放上來了,里面有十來個生產SQL的案例。因為規范大部分還是具有通用性,所以也借鑒了像去哪兒和趕集的規范,但實際在撰寫本文的過程中,每一條規范的背后無不是在工作中有參照的反面例子的。如果時間可以的話,會抽出一部分或分析其原理,或用案例證明。

一. 命名規范

1.庫名、表名、字段名必須使用小寫字母,并采用下劃線分割

(1)MySQL有配置參數lower_case_table_names=1,即庫表名以小寫存儲,大小寫不敏感。如果是0,則庫表名以實際情況存儲,大小寫敏感;如果是2,以實際情況存儲,但以小寫比較。

(2)如果大小寫混合使用,可能存在abc,Abc,ABC等多個表共存,容易導致混亂。

(3)字段名顯示區分大小寫,但實際使⽤時不區分,即不可以建立兩個名字一樣但大小寫不一樣的字段。

(4)為了統一規范, 庫名、表名、字段名使用小寫字母。

2.庫名以 d 開頭,表名以 t 開頭,字段名以 f_ 開頭

(1)比如表 t_crm_relation,中間的 crm 代表業務模塊名

(2)視圖以view_開頭,事件以event_開頭,觸發器以trig_開頭,存儲過程以proc_開頭,函數以func_開頭

(3)普通索引以idx_col1_col2命名,唯一索引以uk_col1_col2命名(可去掉f_公共部分)。如 idx_companyid_corpid_contacttime(f_company_id,f_corp_id,f_contact_time)

3.庫名、表名、字段名禁止超過32個字符,需見名知意

庫名、表名、字段名支持最多64個字符,但為了統一規范、易于辨識以及減少傳輸量,禁止超過32個字符

4.臨時庫、表名須以tmp加日期為后綴

如 t_crm_relation_tmp0425。備份表也類似,形如 _bak20160425 。

5.按日期時間分表須符合_YYYY[MM][DD]格式

這也是為將來有可能分表做準備的,比如t_crm_ec_record_201403,但像 t_crm_contact_at201506就打破了這種規范。
不具有時間特性的,直接以 t_tbname_001 這樣的方式命名。

二. 庫表基礎規范

1.使用Innodb存儲引擎

5.5版本開始mysql默認存儲引擎就是InnoDB,5.7版本開始,系統表都放棄MyISAM了。

2.表字符集統一使用UTF8

(1)UTF8字符集存儲漢字占用3個字節,存儲英文字符占用一個字節

(2)校對字符集使用默認的 utf8_general_ci

(3)連接的客戶端也使用utf8,建立連接時指定charset或SET NAMES UTF8;。(對于已經在項目中長期使用latin1的,救不了了)

(4)如果遇到EMOJ等表情符號的存儲需求,可申請使用UTF8MB4字符集

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芮城县| 防城港市| 临朐县| 沙湾县| 扶沟县| 大埔区| 茌平县| 三江| 滨海县| 屯昌县| 沙坪坝区| 江源县| 鄂州市| 平舆县| 红桥区| 阿图什市| 阿荣旗| 遂溪县| 依兰县| 双鸭山市| 深州市| 中方县| 襄垣县| 类乌齐县| 谷城县| 无棣县| 静安区| 泽州县| 油尖旺区| 柯坪县| 沅江市| 宝山区| 芮城县| 云南省| 兰州市| 广昌县| 鱼台县| 榆林市| 称多县| 汶川县| 丰都县|