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...