1. 程式人生 > >MySQL中範式與反範式的優缺點

MySQL中範式與反範式的優缺點

mysql

範式化的優點:

  • 範式化更新操作通常比反範式化要快。

  • 當數據較好的範式化時,就只有很少或者沒有重復數據,所以,只需要修改更少的數據。

  • 範式化的表通常更小,可以更好地放在內存裏,所以執行操作會更快。

  • 很少有多余的數據意味著檢索列表數據更少需要distinct或者group by 語句。


範式化的缺點:

  • 範式化設計schema通常需要關聯。稍微復雜一些的查詢語句在符合範式的schema上都可能需要至少一次關聯,也許更多。這樣做代價昂貴,也可能使一些索引策略無效。比如,範式化可能將列放在不同的表中,而這些列在同一個表中可以數據同一個索引。


反範式的優點

  • 可以很好地避免關聯。

  • 如果不需要關聯表,對大部分查詢最差情況,即沒有使用索引,全表掃描。當數據幣內存大時這可能比關聯要快很多, 這樣避免了隨機I/O。

在真實環境中很少會極端地使用範式化或者反範式化的schema。而是可能使用部分範式化的schema、緩存表、以及其它技巧。最常見的反範式化數據的方法是復制或者緩存,在不同的表中存儲相同的特定的列。




本文出自 “分享學習” 博客,謝絕轉載!

MySQL中範式與反範式的優缺點