首页 > 代码库 > MySQL中范式与反范式的优缺点

MySQL中范式与反范式的优缺点

范式化的优点:

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

  • 当数据较好的范式化时,就只有很少或者没有重复数据,所以,只需要修改更少的数据。

  • 范式化的表通常更小,可以更好地放在内存里,所以执行操作会更快。

  • 很少有多余的数据意味着检索列表数据更少需要distinct或者group by 语句。


范式化的缺点:

  • 范式化设计schema通常需要关联。稍微复杂一些的查询语句在符合范式的schema上都可能需要至少一次关联,也许更多。这样做代价昂贵,也可能使一些索引策略无效。比如,范式化可能将列放在不同的表中,而这些列在同一个表中可以数据同一个索引。


反范式的优点

  • 可以很好地避免关联。

  • 如果不需要关联表,对大部分查询最差情况,即没有使用索引,全表扫描。当数据币内存大时这可能比关联要快很多, 这样避免了随机I/O。

               

在真实环境中很少会极端地使用范式化或者反范式化的schema。而是可能使用部分范式化的schema、缓存表、以及其它技巧。最常见的反范式化数据的方法是复制或者缓存,在不同的表中存储相同的特定的列。




本文出自 “分享学习” 博客,谢绝转载!

MySQL中范式与反范式的优缺点