歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

非常實(shí)用的mysql數(shù)據(jù)庫規(guī)范

  • 資源ID:210938606       資源大小:353.09KB        全文頁數(shù):11頁
  • 資源格式: DOCX        下載積分:9.98積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.98積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

非常實(shí)用的mysql數(shù)據(jù)庫規(guī)范

分享一份實(shí)用的mysql數(shù)據(jù)庫規(guī)范,值得收藏概述今天主要分享一下mysql的數(shù)據(jù)庫規(guī)范,僅供參考。從基礎(chǔ)、命名、表設(shè)計、字段設(shè)計、索引設(shè)計、sql編寫、行為規(guī)范幾個方面做介紹。基礎(chǔ)規(guī)范1、必須使用InnoDB存儲引擎說明:支持事務(wù)、行級鎖、并發(fā)性能更好、CPU及內(nèi)存緩存頁優(yōu)化使得資源利用率更高2、新庫使用utf8mb4字符集說明:萬國碼,無需轉(zhuǎn)碼,無亂碼風(fēng)險,節(jié)省空間3、數(shù)據(jù)表、數(shù)據(jù)字段必須加入中文注釋說明:主要是避免離職后沒人知道這些字段是什么意思4、禁止使用存儲過程、視圖、觸發(fā)器、Event說明:高并發(fā)大數(shù)據(jù)的互聯(lián)網(wǎng)業(yè)務(wù),架構(gòu)設(shè)計思路是“解放數(shù)據(jù)庫CPU,將計算轉(zhuǎn)移到服務(wù)層”,并發(fā)量大的情況下,這些功能很可能將數(shù)據(jù)庫拖死,業(yè)務(wù)邏輯放到服務(wù)層具備更好的擴(kuò)展性,能夠輕易實(shí)現(xiàn)“增機(jī)器就加性能”。數(shù)據(jù)庫擅長存儲與索引,CPU計算還是上移吧。5、禁止存儲大文件或者大照片說明:為何要讓數(shù)據(jù)庫做它不擅長的事情?大文件和照片存儲在文件系統(tǒng),數(shù)據(jù)庫里更多是用來存URI。命名規(guī)范1、只允許使用內(nèi)網(wǎng)域名,而不是ip連接數(shù)據(jù)庫l 線上環(huán)境、開發(fā)環(huán)境、測試環(huán)境數(shù)據(jù)庫內(nèi)網(wǎng)域名遵循命名規(guī)范l 業(yè)務(wù)名稱:xxxl 線上環(huán)境:dj.xxx.dbl 開發(fā)環(huán)境:dj.xxx.rdbl 測試環(huán)境:dj.xxx.tdbl 從庫在名稱后加-s標(biāo)識,備庫在名稱后加-ss標(biāo)識l 線上從庫:dj.xxx-s.dbl 線上備庫:dj.xxx-sss.db2、庫名、表名、字段名:小寫,下劃線風(fēng)格,不超過32個字符,必須見名知意,禁止拼音英文混用l 表名t_xxx,非唯一索引名idx_xxx,唯一索引名uniq_xxx表設(shè)計規(guī)范1、單實(shí)例表數(shù)目必須小于500,單表列數(shù)目必須小于30,表必須有主鍵,例如自增主鍵說明:l 1)主鍵遞增,數(shù)據(jù)行寫入可以提高插入性能,可以避免page分裂,減少表碎片提升空間和內(nèi)存的使用l 2)主鍵要選擇較短的數(shù)據(jù)類型, Innodb引擎普通索引都會保存主鍵的值,較短的數(shù)據(jù)類型可以有效的減少索引的磁盤空間,提高索引的緩存效率l 3) 無主鍵的表刪除,在row模式的主從架構(gòu),會導(dǎo)致備庫夯住2、禁止使用外鍵,如果有外鍵完整性約束,需要應(yīng)用程序控制說明:外鍵會導(dǎo)致表與表之間耦合,update與delete操作都會涉及相關(guān)聯(lián)的表,十分影響sql 的性能,甚至?xí)斐伤梨i。高并發(fā)情況下容易造成數(shù)據(jù)庫性能,大數(shù)據(jù)高并發(fā)業(yè)務(wù)場景數(shù)據(jù)庫使用以性能優(yōu)先。字段設(shè)計規(guī)范1、必須把字段定義為NOT NULL并且提供默認(rèn)值說明:l 1)null的列使索引/索引統(tǒng)計/值比較都更加復(fù)雜,對MySQL來說更難優(yōu)化l 2)null 這種類型MySQL內(nèi)部需要進(jìn)行特殊處理,增加數(shù)據(jù)庫處理記錄的復(fù)雜性;同等條件下,表中有較多空字段的時候,數(shù)據(jù)庫的處理性能會降低很多l(xiāng) 3)null值需要更多的存儲空,無論是表還是索引中每行中的null的列都需要額外的空間來標(biāo)識l 4)對null 的處理時候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in這些操作符號。如:where name!=shenjian,如果存在name為null值的記錄,查詢結(jié)果就不會包含name為null值的記錄2、禁止使用TEXT、BLOB類型說明:會浪費(fèi)更多的磁盤和內(nèi)存空間,非必要的大量的大字段查詢會淘汰掉熱數(shù)據(jù),導(dǎo)致內(nèi)存命中率急劇降低,影響數(shù)據(jù)庫性能3、禁止使用小數(shù)存儲貨幣說明:使用整數(shù)吧,小數(shù)容易導(dǎo)致金額對不上4、必須使用varchar(20)存儲手機(jī)號說明:l 1)涉及到區(qū)號或者國家代號,可能出現(xiàn)+-()l 2)手機(jī)號會去做數(shù)學(xué)運(yùn)算么?l 3)varchar可以支持模糊查詢,例如:like“138%”5、禁止使用ENUM,可使用TINYINT代替說明:l 1)增加新的ENUM值要做DDL操作l 2)ENUM的內(nèi)部實(shí)際存儲就是整數(shù)索引設(shè)計規(guī)范1、單表索引建議控制在5個以內(nèi)說明:字段超過5個時,實(shí)際已經(jīng)起不到有效過濾數(shù)據(jù)的作用了2、禁止在更新十分頻繁、區(qū)分度不高的屬性上建立索引說明:l 1)更新會變更B+樹,更新頻繁的字段建立索引會大大降低數(shù)據(jù)庫性能l 2)“性別”這種區(qū)分度不大的屬性,建立索引是沒有什么意義的,不能有效過濾數(shù)據(jù),性能與全表掃描類似3、建立組合索引,必須把區(qū)分度高的字段放在前面說明:能夠更加有效的過濾數(shù)據(jù)SQL編寫規(guī)范1、禁止使用SELECT *,只獲取必要的字段,需要顯示說明列屬性說明:l 1)讀取不需要的列會增加CPU、IO、NET消耗l 2)不能有效的利用覆蓋索引l 3)使用SELECT *容易在增加或者刪除字段后出現(xiàn)程序BUG2、禁止使用INSERT INTO t_xxx VALUES(xxx),必須顯示指定插入的列屬性說明:容易在增加或者刪除字段后出現(xiàn)程序BUG3、禁止使用屬性隱式轉(zhuǎn)換說明:SELECT uid FROM t_user WHERE phone=13812345678 會導(dǎo)致全表掃描,而不能命中phone索引,猜猜為什么?(這個線上問題不止出現(xiàn)過一次)4、禁止在WHERE條件的屬性上使用函數(shù)或者表達(dá)式說明:SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15' 會導(dǎo)致全表掃描 正確的寫法是:SELECT uid FROM t_user WHERE day>= unix_timestamp('2017-02-15 00:00:00')5、禁止負(fù)向查詢,以及%開頭的模糊查詢說明:l 1)負(fù)向查詢條件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,會導(dǎo)致全表掃描l 2)%開頭的模糊查詢,會導(dǎo)致全表掃描6、禁止大表使用JOIN查詢,禁止大表使用子查詢說明:會產(chǎn)生臨時表,消耗較多內(nèi)存與CPU,極大影響數(shù)據(jù)庫性能7、禁止使用OR條件,必須改為IN查詢說明:舊版本Mysql的OR查詢是不能命中索引的,即使能命中索引,為何要讓數(shù)據(jù)庫耗費(fèi)更多的CPU幫助實(shí)施查詢優(yōu)化呢?8、應(yīng)用程序必須捕獲SQL異常,并有相應(yīng)處理行為規(guī)范1、禁止使用應(yīng)用程序配置文件內(nèi)的帳號手工訪問線上數(shù)據(jù)庫2、禁止非DBA對線上數(shù)據(jù)庫進(jìn)行寫操作,修改線上數(shù)據(jù)需要提交工單,由DBA執(zhí)行,提交的SQL語句必須經(jīng)過測試3、分配非DBA以只讀帳號,必須通過VPN+跳板機(jī)訪問授權(quán)的從庫4、開發(fā)、測試、線上環(huán)境隔離

注意事項(xiàng)

本文(非常實(shí)用的mysql數(shù)據(jù)庫規(guī)范)為本站會員(ta****fu)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!