一. 范式化與反范式化

范式是為了消除重復數(shù)據(jù)減少冗余數(shù)據(jù),從而讓數(shù)據(jù)庫內(nèi)的數(shù)據(jù)更好的組織,讓磁盤空間得到更有效利用的一種標準化標準,滿足高等級的范式的先決條件是滿足低等級范式。在數(shù)據(jù)庫設計階段,明確集合的用途是對mongodb數(shù)據(jù)庫性能調(diào)優(yōu)非常重要的一步。根據(jù)集合中數(shù)據(jù)最常用的操作,對于頻繁更新和頻繁查詢的集合,我們最需要關注的重點是他們的范式化程度。

1.1 范式化

1.1.1 范式化的優(yōu)點:

  1. 范式化的數(shù)據(jù)庫更新起來更加快;

  2. 范式化之后,只有很少的重復數(shù)據(jù),只需要修改更少的數(shù)據(jù);

  3. 范式化的表更小,可以在內(nèi)存中執(zhí)行;

  4. 很少的冗余數(shù)據(jù),在查詢的時候需要更少的distinct或者group by語句。

1.1.2 范式化的缺點:

  1. 范式化的表,在查詢的時候經(jīng)常需要很多的關聯(lián),因為單獨一個表內(nèi)不存在冗余和重復數(shù)據(jù)。這導致,稍微復雜一些的查詢語句在查詢范式的schema上都可能需要較多次的關聯(lián)。這會增加讓查詢的代價,也可能使一些索引策略無效。因為范式化將列存放在不同的表中,而這些列在一個表中本可以屬于同一個索引。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式