MySql數據庫規範與原則
阿新 • • 發佈:2018-02-06
優化 數據庫表 datetime status 上下 字符串 cell 組成 str
1、數據庫表名命名規範
采用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線‘_‘組成; 命名簡潔明確,多個單詞用下劃線‘_‘分隔; 例如:user_login, user_profile, user_detail, user_role, user_role_relation, user_role_right, user_role_right_relation 表前綴‘user_‘可以有效的把相同關系的表顯示在一起;
2、數據庫表字段名命名規範
采用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線‘_‘組成; 命名簡潔明確,多個單詞用下劃線‘_‘分隔; 例如:user_login表字段 user_id, user_name, pass_word, eamil, tickit, status, mobile, add_time; 每個表中必須有自增主鍵,add_time(默認系統時間) 表與表之間的相關聯字段名稱要求盡可能的相同;
3、用盡量少的存儲空間來存數一個字段的數據;
例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(256); IP地址最好使用int類型; 固定長度的類型最好使用char,例如:郵編; 能使用tinyint就不要使用smallint,int; 最好給每個字段一個默認值,最好不能為null;
4、字段類原則
用好數值類型(用合適的字段類型節約空間); 字符轉化為數字(能轉化的最好轉化,同樣節約空間、提高查詢性能); 避免使用NULL字段(NULL字段很難查詢優化、NULL字段的索引需要額外空間、NULL字段的復合索引無效); 少用text類型(盡量使用varchar代替text字段);
MySQL數據類型 | 含義 |
date | 3字節,日期,格式:2014-09-18 |
time | 3字節,時間,格式:08:42:30 |
datetime | 8字節,日期時間,格式:2014-09-18 08:42:30 |
timestamp | 4字節,自動存儲記錄修改的時間 |
year | 1字節,年份 |
整型
MySQL數據類型 | 含義(有符號) |
tinyint | 1字節,範圍(-128~127) |
smallint | 2字節,範圍(-32768~32767) |
mediumint | 3字節,範圍(-8388608~8388607) |
int | 4字節,範圍(-2147483648~2147483647) |
bigint | 8字節,範圍(+-9.22*10的18次方) |
字符串數據類型
MySQL數據類型 | 含義 |
char(n) | 固定長度,最多255個字符 |
varchar(n) | 可變長度,最多65535個字符 |
tinytext | 可變長度,最多255個字符 |
text | 可變長度,最多65535個字符 |
mediumtext | 可變長度,最多2的24次方-1個字符 |
longtext | 可變長度,最多2的32次方-1個字符 |
MySql數據庫規範與原則