mysql資料庫開發管理規範

2022-08-03 13:27:20 字數 2524 閱讀 7472

規範1:mysql資料庫的名字最好跟應用的名字一致

規範2:表命名總長度不能超過26位

規範3:表名由英文單詞與下劃線組成,表名中禁止使用中橫線『-』 ,單詞之間用下劃線隔開,嚴禁使用中文拼音。對於單詞超長的,可使用單詞縮寫,但是單詞縮寫必須能夠完整表達原單詞的含義。禁止新建表名和原有系統中已有表名重名

規範4:表名必須使用小寫,如果大小寫混合用,可能存在abc,abc,abc等多個表共存,容易導致混亂;

規範6:表字符集選擇utf8

規範7:每個表都需要新增表注釋,方便其他開發人員檢視

規範8:合理分表,控制單錶資料量,int型建議不超過1000w,含char則不超過500w

規範9:臨時表命名方式:tmp_表縮寫

規範10:欄位名必須非mysql關鍵字,具體的可以檢視mysql關鍵字文件

規範11:控制單表列數量,字段少而精,字段數建議在20以內;

規範12:欄位名長度不得超過15位;

規範13:儲存精確浮點數必須使用decimal替代float和double,浮點數存在誤差;

規範14:整形定義中不顯示規定顯示長度,比如使用int,而不是int(4);

規範15:盡可能不使用text、blob型別,varchar的效能會比text高很多;實在避免不了blob,請拆表,單獨存放blob欄位資料;

規範16:只儲存年使用year型別;

規範17:如果是索引字段,強烈建議定義為not null;

規範19:mysql欄位上禁止單獨指定字符集;

規範20:表的每個欄位都需要新增相應注釋,方便其他開發人員檢視;

規範21:欄位的命名需要有含義,字段命名要能真實表達欄位的意義。對於外來鍵引用的字段,需要與主表的欄位名保持一致。

規範22:主鍵約束:表名_欄位名_pk,約束名的最大長度為30位

規範23:盡量少的使用外來鍵,請由程式保證約束;

規範24:唯一性約束:表名_uniq,對於存在多個唯一性約束的表,唯一性約束的命名為:表名縮寫_欄位名_uniq 2.1.5索引的命名,索引名的最大長度為30位

規範25:索引:表名_欄位名_idx

規範26:索引中的字段數建議不超過5個,唯一鍵由3個以下字段組成,唯一鍵不和主鍵重複

規範27:索引欄位的順序需要考慮字段值去重之後的個數,個數多的放在前面

規範28:索引名稱必須使用小寫

規範29:update、delete語句也需要根據where條件新增索引

規範30:不建議使用%字首模糊查詢,例如like 「%koo」,這樣會導致無法使用列上的索引而做全表掃瞄

規範31:合理建立聯合索引(避免冗餘),(a,b,c) 相當於(a) 、(a,b) 、(a,b,c)

規範32:單張表的索參數量控制在5個以內,禁止在每乙個where條件列上建立索引,索引一定不是越多越好(能不加就不加,要加的一定得加),去重後記錄條數過少不適合建索引,例如「性別」,「狀態status」;

規範33:建立表指令碼命名為:_ddl.sql

規範34:修改線上表指令碼命名為:_other.sql因為修改線上表的動作風險較大,所以對線上已存在的表修改指令碼,需要單獨列出,命名為database_other.sql

規範35:create table語句引數需要顯示指定engine,charset選項,表中有auto_increment自增列的,需要指定auto_increment的初始值

規範36:每個表的字段數目不要超過100個

規範37:字段必須定義合適的資料型別

規範38:日期字段推薦使用timestamp和datetime資料型別,盡量不使用char 和varchar2,datetime記錄年月日時分秒,並且記錄的年份比較久遠,那麼最好用datetime,而不是timestamp,它的時間範圍比較短,timestamp表示的時間為1970-01-01 08:00:01到2038-01-19 11:14:07

規範39:所有表都預設加兩列:

1:created_time datetime not null

2:update_time timestamp default current_timestamp on update current_timestamp

規範40:關聯表之間相同欄位的資料型別和型別長度必須完全一致,如果關聯表之間相同欄位的資料型別不一致,那麼在通過關聯字段進行關聯表之間的聯合查詢的時候,會導致執行計畫出現問題,影響sql語句效率。

規範41:表和字段必須有comment中文注釋表和字段必須有中文注釋,注釋採用comment on的形式;

規範42:根據更新的頻繁程度決定欄位的順序為提高資料庫效率,建議將更新頻繁程度高的字段排在表中靠前的位置。越靠後的字段效率越低:

規範43:建立表時,新增必要的約束

規範44:相同用途的字段,在各個表裡的定義屬性完全一致;

規範45:不在表中新增外來鍵關聯為了提高資料庫處理效率,盡量不在表中新增外來鍵的關聯關係。該關係由應用來保證。

規範46:表結構變更需要通知dba審核

規範47:禁止刪除線上表字段,或修改線上表及欄位名

規範48:對同乙個表add/modify多個欄位時,每種情況需寫成乙個sql語句,既表達清晰,又能保證在報錯的情況下可重複執行

MYSQL資料庫開發規範

自己總結的mysql開發規範,夠用就行了。1 表 1.1 表必須要有主鍵,主鍵使用自動遞增,型別為int。1.2 表名使用有意義的英文單詞,可用下劃線分割。如需使用縮寫時,不可使用意義不明的縮寫。1.3 需要多表join的字段,資料型別保持絕對一致。1.4 字段命名時需要加上表名,確保所有表中的字段...

Mysql 資料庫開發規範

一 基礎規範 1 必須使用innodb儲存引擎 解讀 支援事務 行級鎖 併發效能更好 cpu及記憶體快取頁優化使得資源利用率更高 2 必須使用utf8字符集 解讀 萬國碼,無需轉碼,無亂碼風險,節省空間 3 資料表 資料字段必須加入中文注釋 解讀 n年後誰知道這個r1,r2,r3欄位是幹嘛的 4 禁...

MySQL 資料庫開發規範

一 表 單個表的字段數控制在 20個以下,最好不超過50個 單個表不超過20個char 或varchar 字段 單錶不超過50個純int欄位 拒絕大sql,大事務,批量操作 二 字段型別定義 字段型別選取原則 1 選取合適範圍的資料型別 2 只取正值的數值型別,新增 unsigned屬性 3 固定長...