MYSQL優(yōu)化雜談五,表結(jié)構(gòu)設(shè)計(jì)優(yōu)化

模型設(shè)計(jì)

  • 適度冗余,讓Query盡量減少Join
  • 大字段垂直拆分summary表優(yōu)化(表的垂直拆分)
  • 大表的水平拆分-基于類型的分拆優(yōu)化
  • 統(tǒng)計(jì)表-準(zhǔn)實(shí)時(shí)優(yōu)化(通過定時(shí)統(tǒng)計(jì)數(shù)據(jù)代替實(shí)時(shí)統(tǒng)計(jì)數(shù)據(jù))
滿足以下條件,可以考慮使用定時(shí)統(tǒng)計(jì)表:
1.統(tǒng)計(jì)信息的準(zhǔn)確性要求并不是特別嚴(yán)格
2.統(tǒng)計(jì)信息對時(shí)間并不是太敏感
3.統(tǒng)計(jì)信息的訪問非常頻繁,重復(fù)執(zhí)行較多
4.參與統(tǒng)計(jì)數(shù)據(jù)量較大

合適的數(shù)據(jù)類型

  • 選用更小的數(shù)據(jù)類型減少存儲空間,使查詢相同數(shù)據(jù)需要的IO資源降低
  • 通過合適的數(shù)據(jù)類型加速數(shù)據(jù)的比較
(比如,"Y-m-d" 時(shí)間使用varchar存儲與使用date存儲,在比較時(shí)date類型速度更快)
再比如,同樣存儲時(shí)間格式,timstamp占用空間對少,只需要四個(gè)字節(jié),如果不需要存儲到1970年之前的時(shí)間,使用timestamp
存儲時(shí)間,可以減少存儲空間

規(guī)范的對象名稱

  • 數(shù)據(jù)庫和表名盡可能和所服務(wù)的業(yè)務(wù)模塊名一致
  • 服務(wù)于同意子模塊的一類表盡量以子模塊為前綴或者后綴
  • 字段名稱盡量保持和實(shí)際數(shù)據(jù)響應(yīng)
  • 索引名稱盡量包含所有的檢索字段名或者縮寫
  • 約束其他對象也應(yīng)該盡可能包含所屬表或者其他對象,以表名各自關(guān)系
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容