一. 范式化與反范式化
范式是為了消除重復(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):
范式化的數(shù)據(jù)庫(kù)更新起來更加快;
范式化之后,只有很少的重復(fù)數(shù)據(jù),只需要修改更少的數(shù)據(jù);
范式化的表更小,可以在內(nèi)存中執(zhí)行;
很少的冗余數(shù)據(jù),在查詢的時(shí)候需要更少的distinct或者group by語(yǔ)句。
1.1.2 范式化的缺點(diǎn):
范式化的表,在查詢的時(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í)是年輕人改變自己的最好方式
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26