1. 程式人生 > >mysql 第四十四篇文章~談談最基本的規範

mysql 第四十四篇文章~談談最基本的規範

不能 基本 utf8mb4 存儲 字符型 索引 和平 聯合主鍵 創建索引

一 簡介:今天咱們來談談研發規範

二 規範
1 表
1 選擇合適的字符集和存儲引擎 推薦innodb utf8mb4
2 表名稱不要包含mysql關鍵字,符合命名規範
3 不建議采用外鍵
4 盡量不要采用分區表,采用分庫分表是最優方案
2 列
1 每一列都要設置comment註釋
2 每一列最好都設置為非NULL,設置默認值
3 varchar和char的選擇 定長選擇char 變長選擇varchar ,字符型長度盡量不要太大,否則日後維護和創建索引會有限制
4 datetime和timestamp的選擇 1 timestamp 1 默認值系統時間和更新觸發屬性2 有時間限制(1970-2038) 2datetime 1插入系統時間now() 2 無默認時間及更新屬性,3 相當於無時間限制,4允許為空 所以這個看需求定義
5 集合,枚舉,位圖類型類型盡量不要選擇
6 對於int類型,盡量規範出 int bigint tinyint進行細化定義,能用小不要用大,並采用無符號型
7 表主鍵選擇(1 自增數字主鍵(推薦) 2 varchar類型(除非業務需要,否則盡量不要選擇作為主鍵)),盡量避免聯合主鍵的情況,可以采用唯一性索引進行約束
3 索引
1 索引盡量在建表時建立好
2 盡量用多列索引代替多個單列索引
3 索引的最大長度
1 所有索引鍵最大長度總和不能超過1000,而且不是實際數據長度的總和,而是索引鍵字段定義長度的總和。
2 正因為索引有長度限制,所以針對字符型的長度要做限制
4 一個表中索引個數不要太多,否則會影響DML操作效率
5 索引的命名規範要有邏輯性,最好統一為idx_
6 索引的創建選擇列要選擇區分度較高的列

三 總結:

關於創建表的規範,參考了inception審核體系和平時的一些經驗.有不足和錯誤的地方請指正

mysql 第四十四篇文章~談談最基本的規範