一. 范式化與反范式化

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

1.1 范式化

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

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

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

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

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

1.1.2 范式化的缺點(diǎn):

  1. 范式化的表,在查詢的時(shí)候經(jīng)常需要很多的關(guān)聯(lián),因?yàn)閱为?dú)一個(gè)表內(nèi)不存在冗余和重復(fù)數(shù)據(jù)。這導(dǎo)致,稍微復(fù)雜一些的查詢語(yǔ)句在查詢范式的schema上都可能需要較多次的關(guān)聯(lián)。這會(huì)增加讓查詢的代價(jià),也可能使一些索引策略無(wú)效。因?yàn)榉妒交瘜⒘写娣旁诓煌谋碇?,而這些列在一個(gè)表中本可以屬于同一個(gè)索引。

延伸閱讀

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