国产啪视频1000部免费视频_本年度最佳→偷自拍日韩精品蜜月_亚洲尤物在线观看_成人国产精品视频网站_亚洲成a人片在线观_天天看片在线无码免费_免费日韩一区二区_国产精品久久亚洲高潮野花社喷水_再深点灬舒服灬太大了av_中文字幕无码一级麻豆精品国产综合.

數(shù)據(jù)庫(kù)開(kāi)發(fā)規(guī)范

發(fā)布時(shí)間:2020-08-14 14:23:15

數(shù)據(jù)庫(kù)設(shè)計(jì)步驟:
1,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):邏輯設(shè)計(jì)-“物理設(shè)計(jì) 2,實(shí)際工作:邏輯設(shè)計(jì)+物理設(shè)計(jì)
3,物理設(shè)計(jì):表 名稱+字段名稱+字段類型
數(shù)據(jù)庫(kù)設(shè)計(jì)的幾個(gè)規(guī)范:
數(shù)據(jù)庫(kù)命名規(guī)范,基本數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范,數(shù)據(jù)庫(kù)索引設(shè)計(jì)規(guī)范,數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范,數(shù)據(jù)庫(kù)SQL開(kāi)發(fā)規(guī)范,代碼 數(shù)據(jù)庫(kù)操作指南
數(shù)據(jù)庫(kù)命名規(guī)范
1。所有數(shù)據(jù)庫(kù)對(duì)象名稱都必須使用小寫字母并用下劃線分隔
不同的數(shù)據(jù)庫(kù)名稱DbName dbname
[h  ]不同的表名表表選項(xiàng)卡
2,所有數(shù)據(jù)庫(kù)對(duì)象名稱均禁止使用MySQL保留關(guān)鍵字
select id,用戶名,from,age from tb_user from是關(guān)鍵字,但可以使用 單個(gè)用引號(hào)引起來(lái)
3。數(shù)據(jù)庫(kù)對(duì)象的命名應(yīng)按名稱識(shí)別,最好 不超過(guò)32個(gè)字符。
例如,用戶數(shù)據(jù)庫(kù)mc_userdb用戶帳戶表user_account
4,臨時(shí)數(shù)據(jù)庫(kù)表必須以tmp為前綴,并以date
5為后綴 。 備份數(shù)據(jù)庫(kù)和備份表必須以bak為前綴,并以date
6為前綴,所有存儲(chǔ)相同數(shù)據(jù)的列名稱和列類型必須一致

基本數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范
1。 所有表都必須使用Innodb存儲(chǔ)引擎,它是mysql 5.6之后的默認(rèn)存儲(chǔ)引擎,支持事務(wù),行級(jí)鎖,更好的可恢復(fù)性以及在高并發(fā)性下的更好性能
2。  UTF8統(tǒng)一用于數(shù)據(jù)庫(kù)和表的字符集,以避免由于字符集轉(zhuǎn)換而造成亂碼。
mysql中utf8字符集漢字占3個(gè)字節(jié),而ASCII碼占1個(gè)字節(jié) 3。 所有表和字段都需要添加注釋,使用comment子句添加表和列注釋
4,嘗試控制單個(gè)表數(shù)據(jù)的大小,建議控制在500萬(wàn),500萬(wàn)和 不限制mysql數(shù)據(jù)庫(kù),
mysql中最多可以存儲(chǔ)數(shù)千個(gè)數(shù)據(jù)? 目前沒(méi)有任何限制。 此限制取決于存儲(chǔ)設(shè)置和文件系統(tǒng)。
您可以使用歷史數(shù)據(jù)存檔,子數(shù)據(jù)庫(kù)子表和其他方式來(lái)控制數(shù)據(jù)量。
5。 仔細(xì)使用mysql分區(qū)表
分區(qū)表在物理上顯示為多個(gè)文件,但在邏輯上卻不顯示為一個(gè)表。
請(qǐng)仔細(xì)選擇分區(qū)鍵,跨分區(qū)查詢的效率可能會(huì)較低
[  h]建議通過(guò)物理拆分表來(lái)管理大數(shù)據(jù)[br] 6,嘗試分離熱數(shù)據(jù)和冷數(shù)據(jù),減小表的寬度
mysql最多可限制4096列的存儲(chǔ) 為了減少磁盤IO并確保熱數(shù)據(jù)的內(nèi)存高速緩存命中率,請(qǐng)更有效地使用高速緩存,以避免讀取無(wú)用的冷數(shù)據(jù) ,將經(jīng)常使用的列放在表 7中。 禁止在表中創(chuàng)建保留字段
很難通過(guò)名稱區(qū)分保留字段的名稱
保留字段無(wú)法確認(rèn)所存儲(chǔ)數(shù)據(jù)的類型,因此無(wú)法確定適當(dāng)?shù)念愋?
修改保留字段類型將鎖定該表,并且修改字段類型的開(kāi)銷通常大于增加的開(kāi)銷。
8。 禁止將二進(jìn)制圖片(例如圖片和文件)存儲(chǔ)在數(shù)據(jù)庫(kù)中。
9。 在線數(shù)據(jù)庫(kù)壓力測(cè)試
10。 禁止從開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境直接連接到生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)。
索引設(shè)計(jì)規(guī)范
索引對(duì)于數(shù)據(jù)庫(kù)查詢性能非常重要重要,查詢,更新,禁止 濫用索引。
1。 限制每個(gè)表上的索引數(shù)。 建議單個(gè)表上的索引不超過(guò)5個(gè)。
索引應(yīng)盡可能少。 索引可以提高效率,也可以降低效率
索引可以提高查詢效率,但也會(huì)降低插入和更新的效率。
2。 禁止為表
3中的每個(gè)列創(chuàng)建單獨(dú)的索引,Innodb按照主鍵索引
4的順序組織表,每個(gè)Innodb表必須具有主鍵
不要使用頻繁更新的列作為主鍵,不要使用多列主鍵
不要使用uuid,MD5,哈希,字符串列作為主鍵
[h  ]建議主鍵使用主鍵自動(dòng)遞增
公用索引列建議:
select,update和delete語(yǔ)句的where子句中的列
包括的字段 排序依據(jù),分組依據(jù)和目的地
多表聯(lián)接的關(guān)聯(lián)列
如何選擇索引列的順序:
聯(lián)合索引從以下實(shí)現(xiàn) 正確順序
1.辨別率最高的列位于聯(lián)合索引的最左側(cè)
2.嘗試將字段長(zhǎng)度最小的列置于索引的最左側(cè) 聯(lián)合索引
3.放置mos  t聯(lián)合索引左側(cè)的常用列
5.避免創(chuàng)建冗余索引和重復(fù)索引
重復(fù)索引:例如主鍵(id),索引(id),唯一 index(id)
冗余索引:例如index(a,b,c)index(a,b)index(a) 6。 對(duì)于頻繁查詢,優(yōu)先使用覆蓋索引
覆蓋索引:它是包含所有查詢字段的索引
優(yōu)點(diǎn):避免在Innodb表中進(jìn)行第二次搜索,您可以 將隨機(jī)IO轉(zhuǎn)換為順序IO以加快查詢效率
7.盡可能避免使用外鍵
不建議使用外鍵約束,但必須在表中 在與表相關(guān)的鍵上創(chuàng)建索引
外鍵可用于確保數(shù)據(jù)的引用完整性,但是建議在業(yè)務(wù)端實(shí)現(xiàn)
外鍵會(huì)影響 父表和子表的寫操作,從而降低性能
數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范
1.優(yōu)先選擇滿足存儲(chǔ)需求的最小數(shù)據(jù)類型。
[  h]將字符串轉(zhuǎn)換為數(shù)字類型以進(jìn)行存儲(chǔ)
對(duì)于非負(fù)數(shù)數(shù)據(jù),請(qǐng)使用無(wú)符號(hào)整數(shù)進(jìn)行存儲(chǔ)
有符號(hào) int -2147483648-2147483648
無(wú)符號(hào)int 0-2147483648
有符號(hào)的符號(hào)是無(wú)符號(hào)存儲(chǔ)空間的兩倍
varchar(n)n代表字符數(shù),而不是 字節(jié)數(shù),varchar(255)= 765字節(jié)
過(guò)多的長(zhǎng)度將消耗更多的內(nèi)存
2.避免使用text \ BLOB數(shù)據(jù)類型。
建議使用 將text \ BLOB列分隔為單獨(dú)的擴(kuò)展表。
text \ BLOB類型只能使用前綴索引。
3.避免使用枚舉數(shù)據(jù)類型
修改枚舉需要使用alter語(yǔ)句
枚舉類型按操作順序效率低下,需要額外的操作
禁止將數(shù)值用作枚舉值
4。 盡可能將所有列定義為非null。  
索引空列需要額外的空間來(lái)保存,因此會(huì)占用更多空間。
在比較和計(jì)算過(guò)程中應(yīng)對(duì)空值進(jìn)行特殊處理。
5  
缺點(diǎn)1:不能將日期函數(shù)用于計(jì)算和比較
缺點(diǎn)2:使用字符串存儲(chǔ)日期會(huì)占用更多空間
使用時(shí)間戳或日期時(shí)間類型存儲(chǔ)時(shí)間,時(shí)間戳存儲(chǔ)空間較小
4.將十進(jìn)制類型用于財(cái)務(wù)相關(guān)金額。
十進(jìn)制類型是精確的浮點(diǎn)數(shù) 數(shù)字,在計(jì)算
浮點(diǎn)數(shù)時(shí)不會(huì)丟失精度,雙精度非浮點(diǎn)數(shù)
數(shù)據(jù)庫(kù)SQL開(kāi)發(fā)規(guī)范
1.建議使用準(zhǔn)備好的語(yǔ)句 用于數(shù)據(jù)庫(kù)操作。
優(yōu)點(diǎn):僅傳遞參數(shù),這比傳遞SQL語(yǔ)句更有效。
同一條語(yǔ)句可以一次使用分析并多次使用 提高處理效率
2.避免數(shù)據(jù)類型的隱式轉(zhuǎn)換
隱式轉(zhuǎn)換將導(dǎo)致索引失敗
3.使用表已存在的索引基本數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范
1。 所有表都必須使用Innodb存儲(chǔ)引擎,它是mysql 5.6之后的默認(rèn)存儲(chǔ)引擎,支持事務(wù),行級(jí)鎖,更好的可恢復(fù)性以及在高并發(fā)性下的更好性能
2。  UTF8統(tǒng)一用于數(shù)據(jù)庫(kù)和表的字符集,以避免由于字符集轉(zhuǎn)換而造成亂碼。
mysql中utf8字符集漢字占3個(gè)字節(jié),而ASCII碼占1個(gè)字節(jié) 3。 所有表和字段都需要添加注釋,使用comment子句添加表和列注釋
4,嘗試控制單個(gè)表數(shù)據(jù)的大小,建議控制在500萬(wàn),500萬(wàn)和 不限制mysql數(shù)據(jù)庫(kù),
mysql中可以存儲(chǔ)成千上萬(wàn)的數(shù)據(jù)? 當(dāng)前沒(méi)有限制,此限制取決于存儲(chǔ)設(shè)置和文件系統(tǒng)
您可以使用歷史數(shù)據(jù)存檔,子數(shù)據(jù)庫(kù)子表和其他方式來(lái)控制數(shù)據(jù)量。
 5, 仔細(xì)使用mysql分區(qū)表
分區(qū)表在物理上表示為多個(gè)文件,但在邏輯上未表示為表。
請(qǐng)仔細(xì)選擇分區(qū)鍵。 跨分區(qū)查詢效率可能較低。
建議通過(guò)物理拆分表來(lái)管理大數(shù)據(jù)。
6。 盡量分開(kāi)熱數(shù)據(jù)和冷數(shù)據(jù),并減少表的寬度。 mysql限制最多存儲(chǔ)4096列,以減少磁盤IO并確保熱數(shù)據(jù)的內(nèi)存高速緩存命中率, 更有效地使用緩存,以避免讀取無(wú)用的冷數(shù)據(jù)[br] 經(jīng)常將列放在表 7中。 禁止在表中創(chuàng)建保留字段
很難通過(guò)名稱識(shí)別保留字段的名稱
保留字段無(wú)法確認(rèn)所存儲(chǔ)數(shù)據(jù)的類型,因此不能指定適當(dāng)?shù)念愋?
修改保留字段類型將鎖定該表。 修改字段類型的成本通常大于增加的成本。 8。 禁止將二進(jìn)制圖片(例如圖片和文件)存儲(chǔ)在數(shù)據(jù)庫(kù)中。
9。 在線數(shù)據(jù)庫(kù)壓力測(cè)試
10。 禁止從開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境直接連接生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)。
索引設(shè)計(jì)規(guī)范
索引以檢查數(shù)據(jù)庫(kù)查詢性能非常重要,查詢,更新,禁止濫用索引
1,限制每個(gè)表的索引數(shù)量,建議單個(gè)表的索引不超過(guò)5
[h  ]索引沒(méi)有結(jié)束,索引越好,它可以提高效率,也可以降低效率。 索引可以提高查詢效率,但也會(huì)降低插入和更新的效率。  > 2。 禁止給表中的每一列創(chuàng)建單獨(dú)的索引
3,Innodb按照主鍵索引
4的順序組織表,每個(gè)Innodb表必須具有主鍵
不要將頻繁更新列用作主鍵,不要使用多列主鍵
不要將uuid,MD5,哈希,字符串列用作主鍵
[  h]建議主鍵使用主鍵自動(dòng)遞增
通用索引列建議:
select,update和delete語(yǔ)句的where子句中的列
字段 多表聯(lián)接關(guān)聯(lián)Column   如何選擇索引列的順序:
聯(lián)合索引是在 向右排序
1.區(qū)分度最高的列放在聯(lián)合索引中最左端的
2.嘗試將字段長(zhǎng)度最小的列放在字段的最左側(cè) 聯(lián)合指數(shù)
3.投放最頻繁 聯(lián)合索引 5左側(cè)的常用列。 避免創(chuàng)建冗余索引和重復(fù)索引
重復(fù)索引:例如主鍵(id),索引(id),唯一索引(id)
冗余索引:例如索引(a,b  ,c)index(a,b)index(a)
6。 對(duì)于頻繁查詢,首選覆蓋索引
覆蓋索引:它包括所有查詢字段的索引
優(yōu)點(diǎn):避免在Innodb表中第二次查詢索引,您可以將隨機(jī)IO轉(zhuǎn)換為順序IO以提高查詢效率
7.嘗試避免使用外鍵
不建議使用外鍵約束,但必須在表之間的關(guān)聯(lián)鍵上建立索引。
外鍵可用于確保數(shù)據(jù)的參照完整性,但它可以 建議在業(yè)務(wù)端實(shí)現(xiàn)它。
外鍵將影響父表和子表的寫操作,從而降低性能。
數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范
[  h] 1.優(yōu)先選擇滿足存儲(chǔ)要求的最小數(shù)據(jù)類型
將字符串轉(zhuǎn)換為數(shù)字類型進(jìn)行存儲(chǔ)
使用無(wú)符號(hào)整數(shù)存儲(chǔ)非負(fù)數(shù)據(jù)
[h  ] signed int -2147483648-2147483648
unsigned int 0-2147483648
Signed使unsigned
varch的存儲(chǔ)空間增加了一倍 ar(n)n代表字符數(shù),而不是字節(jié)數(shù),varchar(255)= 765字節(jié)
過(guò)多的長(zhǎng)度將占用更多的內(nèi)存
2.避免使用text \ BLOB數(shù)據(jù) type
建議將text \ BLOB列分隔到單獨(dú)的擴(kuò)展表中。
text \ BLOB類型只能使用前綴索引
3.避免使用枚舉數(shù)據(jù) type
修改枚舉需要使用alter語(yǔ)句
枚舉類型按操作的順序效率低下,并且需要額外的操作
禁止將數(shù)值用作枚舉枚舉 values
4.盡可能將所有列定義為不為null的值。  
索引空列需要額外的空間來(lái)保存,因此要占用更多空間
比較和計(jì)算需要對(duì)空值進(jìn)行特殊處理
5.禁止將日期類型的數(shù)據(jù)存儲(chǔ)在字符串中
缺點(diǎn)1:無(wú)法將日期函數(shù)用于計(jì)算和 比較
缺點(diǎn)2:使用字符串存儲(chǔ)日期會(huì)占用更多空間
使用時(shí)間戳或datetime類型存儲(chǔ)時(shí)間,時(shí)間戳存儲(chǔ)空間較小
4.使用十進(jìn)制表示 財(cái)務(wù)相關(guān)金額類型
十進(jìn)制類型是精度浮點(diǎn)數(shù),在計(jì)算過(guò)程中不會(huì)丟失精度。
浮點(diǎn)數(shù),雙精度非浮點(diǎn)數(shù)
 數(shù)據(jù)庫(kù)SQL開(kāi)發(fā)規(guī)范
1.建議對(duì)數(shù)據(jù)庫(kù)操作使用準(zhǔn)備好的語(yǔ)句。
好處:僅傳遞參數(shù)比傳遞SQL語(yǔ)句更有效。
[h  ]同一條語(yǔ)句可以被解析一次,并可以多次使用,以提高處理效率。
2.避免隱式轉(zhuǎn)換數(shù)據(jù)類型
Im 重復(fù)轉(zhuǎn)換將導(dǎo)致索引失敗
3.使用表上的現(xiàn)有索引

服務(wù)熱線:4006068008 0531-85860101 15589999555郵箱:zlxk@zlxk.com地址:山東省濟(jì)南市高新區(qū)鑫盛大廈2號(hào)樓24層

Copyright 2023,ALL Rights Reserved zlxk.com | | (c) Copyright 2024版權(quán)所有 魯ICP備20032954號(hào)-1網(wǎng)站地圖