阿里的Mysql規範

2021-08-20 02:36:06 字數 1020 閱讀 2026

mysql庫表設計規範

表設計1) 表必須定義主鍵,預設為id,整型自增,如果不採用預設設計必須諮詢dba進行設計評估

2) id欄位作為自增主鍵,禁止在非事務內作為上下文作為條件進行資料傳遞

3) 禁止使用外來鍵

4) 多表中的相同列,必須保證列定義一致

5) 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表

6) 表必須包含gmt_create和gmt_modified欄位,即表必須包含記錄建立時間和修改時間的字段

7) 單錶一到兩年內資料量超過500w或資料容量超過10g考慮分表,且需要提前考慮歷史資料遷移或應用自行刪除歷史資料

8) 單條記錄大小禁止超過8k(列長度(中文)*2(gbk)/3(utf8)+列長度(英文)*1)

9) 日誌類資料不建議儲存在mysql上,優先考慮hbase或ob,如需要儲存請找dba評估使用壓縮表儲存

字段設計

1) 表被索引列必須定義為not null,並設定default值

2) 禁止使用float、double型別,建議使用decimal或者int替代

3) 禁止使用blob、text型別保留大文字、檔案、,建議使用其他方式儲存(tfs/sfs),mysql只儲存指標資訊

4) 禁止使用varchar型別作為主鍵語句設計

語句設計

1)    資料更新建議使用二級索引先查詢出主鍵,再根據主鍵進行資料更新

2) 禁止使用非同型別的列進行等值查詢!

其他

1) 禁止使用:儲存過程、觸發器、函式、檢視、事件等mysql高階功能

2) 禁止使用跨庫查詢

3) 禁止使用子查詢,建議將子查詢轉換成關聯查詢

4) 禁止核心業務流程sql包含:計算操作、多表關聯、表遍歷case when等複雜查詢,建議拆分成單錶簡單查詢

5) varchar長度設計需要根據業務實際需要進行長度控制,禁止預留過長空間。例如status使用varchar(128)進行儲存

阿里開發規範

1.強制 使用工具類 arrays aslist 把陣列轉換成集合時,不能使用其修改集合相關的方 法,它的 add remove clear 方法會丟擲 unsupportedoperationexception 異常。說明 aslist 的返回物件是乙個 arrays 內部類,並沒有實現集合的修改...

mysql 的開發規範 MySQL開發規範

一 基礎規範 1 使用innodb儲存引擎 2 資料庫字符集使用utf8,校對字符集使用utf8 general ci 3 所有表 欄位都盡量新增注釋 4 庫名 表名 欄位名使用小寫字母,禁止超過32個字元,須見名知意 5 非唯一索引以 idx 欄位1 欄位2 命名,唯一索引必須以 uniq 欄位1...

日誌規範 阿里java規範中內容

強制 應用中不可直接使用日誌系統 log4j logback 中的 api,而應依賴使用日誌框架 slf4j 中的 api,使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。import org.slf4j.logger import org.slf4j.logge ctory priv...