一. 范式化与反范式化

范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织,让磁盘空间得到更有效利用的一种标准化标准,满足高等级的范式的先决条件是满足低等级范式。在数据库设计阶段,明确集合的用途是对mongodb数据库性能调优非常重要的一步。根据集合中数据最常用的操作,对于频繁更新和频繁查询的集合,我们最需要关注的重点是他们的范式化程度。

1.1 范式化

1.1.1 范式化的优点:

  1. 范式化的数据库更新起来更加快;

  2. 范式化之后,只有很少的重复数据,只需要修改更少的数据;

  3. 范式化的表更小,可以在内存中执行;

  4. 很少的冗余数据,在查询的时候需要更少的distinct或者group by语句。

1.1.2 范式化的缺点:

  1. 范式化的表,在查询的时候经常需要很多的关联,因为单独一个表内不存在冗余和重复数据。这导致,稍微复杂一些的查询语句在查询范式的schema上都可能需要较多次的关联。这会增加让查询的代价,也可能使一些索引策略无效。因为范式化将列存放在不同的表中,而这些列在一个表中本可以属于同一个索引。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式