溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL設(shè)計規(guī)范

發(fā)布時間:2020-08-10 21:11:25 來源:網(wǎng)絡(luò) 閱讀:441 作者:斷情漠 欄目:數(shù)據(jù)庫

1.  數(shù)據(jù)庫設(shè)計規(guī)范

數(shù)據(jù)庫命名規(guī)范

數(shù)據(jù)庫基本設(shè)計規(guī)范

數(shù)據(jù)庫索引設(shè)計規(guī)范

數(shù)據(jù)庫字段設(shè)計規(guī)范

SQL開發(fā)規(guī)范

數(shù)據(jù)庫操作規(guī)范

1.1    數(shù)據(jù)庫命名規(guī)范

對象使用小寫字母并用下劃線分隔;

禁止使用MySQL保留關(guān)鍵字;

對象名不要超過32個字符;

PS:其實在oracle11g之前版本,對象都是32位以下,12C好像增大到128.

臨時表以tmp前綴日期后綴;

備份表以bak前綴日期后綴;

存儲相同數(shù)據(jù)的列名和類型都要一致

1.2    數(shù)據(jù)庫基本設(shè)計規(guī)范

所有表使用InnoDB存儲引擎;

庫和表統(tǒng)一使用UTF8

MySQLUTF8下漢字占用3個字節(jié),ASCII碼占用1個字節(jié);

表和字段添加注釋;

盡量控制單表數(shù)據(jù)量的大小,建議控制500W以內(nèi);

PS:單表數(shù)據(jù)量太大,備份、恢復(fù)、修改表結(jié)構(gòu)DDL都有很大問題。

PS:歷史數(shù)據(jù)歸檔,分庫分表控制單表的數(shù)據(jù)量大小。

謹(jǐn)慎使用分區(qū)表;(這是教案中給的建議)

PS:分區(qū)表在物理上分為多個文件,邏輯上表現(xiàn)為一個表,謹(jǐn)慎選擇分區(qū)鍵,跨分區(qū)查詢效率可能更低,建議采用物理分表的方式管理大數(shù)據(jù)。

盡量做到冷熱數(shù)據(jù)分離,減小表的寬度;

PSMySQL表最多支持4096列。

禁止在表中建立預(yù)留字段

PS:預(yù)留字段無法選擇合適的數(shù)據(jù)類型,對預(yù)留字段進行修改,會鎖表影響并發(fā)。

禁止在數(shù)據(jù)庫中存儲圖片、文件等二進制數(shù)據(jù)

PSDB中存儲指向文件服務(wù)器的圖片或文件的地址信息。

禁止在線上對數(shù)據(jù)庫進行壓力測試;

禁止從開發(fā)測試環(huán)境直連生產(chǎn)庫;

1.3    數(shù)據(jù)庫索引設(shè)計規(guī)范

建議單表索引的數(shù)量不要超過5個;

每個InnoDB表必須有個主鍵

PS:不能使用更新頻繁的列作為主鍵,不能使用多列作為主鍵,

         不能使用uuid、md5、hash、字符串作為主鍵,

主鍵建議使用自增ID

索引列建議

where從句后的列,包含在group by,order by, distinct中字段的單列索引或組合索引,多表聯(lián)合的Join列。

索引列的順序(下面優(yōu)先級別從上到下由高到低):

選擇性高的列在左側(cè)(優(yōu)先考慮);

字段長度小的列在左側(cè);

使用最頻繁的列在左側(cè)。

避免建立冗余和重復(fù)索引

primary key(id), index(id), unique(id)à重復(fù)索引;

index(a, b, c), index(a, b), index(a)àa列冗余索引。

對于頻繁的查詢優(yōu)先考慮適應(yīng)覆蓋索引

有點類似oracle的回表操作,直接在索引列上取出Select的列。

避免InnoDB表進行索引的二次查找。

Select a, b from tab where c = xxx;

create index index_name on tab(c, a, b);

可把隨機IO轉(zhuǎn)為順序IO

盡量避免使用外鍵

建立外鍵時,會自動在外鍵上建立索引;

不建議使用外鍵約束,但要在表之間的關(guān)聯(lián)列上建立索引;

 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI