您好,登錄后才能下訂單哦!
(如果兩個關(guān)聯(lián)的列的數(shù)據(jù)類型不一樣,在關(guān)聯(lián)的時候會進行隱式轉(zhuǎn)換,造成列上索引失效,查詢效率大幅降低)
沒特殊需求的情況下,統(tǒng)一使用innodb
統(tǒng)一字符集可以避免由于字符集轉(zhuǎn)換產(chǎn)生的亂碼,數(shù)據(jù)庫和表字符集統(tǒng)一使用utf8(如果要存表情符號還要用utf8的擴展字符集,但一定要統(tǒng)一)
所有表和字段都要加注釋
從一開始就進行數(shù)據(jù)字典的維護
盡量控制單表數(shù)據(jù)量的大小(歷史數(shù)據(jù)歸檔、分庫分表),建議控制在500w行內(nèi)(過大的表對修改表結(jié)構(gòu)、備份、恢復都有很大問題)
謹慎使用mysql分區(qū)表
????????謹慎選擇分區(qū)鍵,盡量避免跨分區(qū)查詢,跨分區(qū)查詢效率可能更低
????????選擇分區(qū)的好處:因為分區(qū)表在物理上表現(xiàn)為多個文件(有利磁盤io),在邏輯上表現(xiàn)為一個表
????????????????對訂單表來說:如果使用訂單號來做分區(qū)鍵來分區(qū),如果要查詢某個人的所有訂單,會跨分區(qū)做查詢,甚至要對所有分區(qū)進行掃描,可能比查詢單個大表效率更低。
????????建議采用物理分表的方式管理大數(shù)據(jù)
盡量做到冷熱數(shù)據(jù)分離,減小表的寬度(減少磁盤io,保證熱數(shù)據(jù)的內(nèi)存緩存命中率)
利用更有效的利用緩存,避免讀入無用的冷數(shù)據(jù)(如select *)
禁止在表中建立預留字段
????????
????????(對mysql來說,修改一個字段的成本遠大于增加一個字段)
禁止在數(shù)據(jù)庫中存儲圖片、文件等二進制數(shù)據(jù)
禁止在線上生產(chǎn)環(huán)境做數(shù)據(jù)庫壓力測試
????????1.面影響正常業(yè)務的訪問
????????2.會產(chǎn)生大量垃圾數(shù)據(jù),對日后造成麻煩
禁止從開發(fā)環(huán)境,測試環(huán)境直連產(chǎn)生環(huán)境數(shù)據(jù)庫(對數(shù)據(jù)完整性造成破壞)
方法
免責聲明:本站發(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)容。