MYSQL優化雜談五,表結構設計優化

模型設計

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

合適的數據類型

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

規范的對象名稱

  • 數據庫和表名盡可能和所服務的業務模塊名一致
  • 服務于同意子模塊的一類表盡量以子模塊為前綴或者后綴
  • 字段名稱盡量保持和實際數據響應
  • 索引名稱盡量包含所有的檢索字段名或者縮寫
  • 約束其他對象也應該盡可能包含所屬表或者其他對象,以表名各自關系
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容