一. 范式化與反范式化
范式是為了消除重復數(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)點:
范式化的數(shù)據(jù)庫更新起來更加快;
范式化之后,只有很少的重復數(shù)據(jù),只需要修改更少的數(shù)據(jù);
范式化的表更小,可以在內(nèi)存中執(zhí)行;
很少的冗余數(shù)據(jù),在查詢的時候需要更少的distinct或者group by語句。
1.1.2 范式化的缺點:
范式化的表,在查詢的時候經(jīng)常需要很多的關聯(lián),因為單獨一個表內(nèi)不存在冗余和重復數(shù)據(jù)。這導致,稍微復雜一些的查詢語句在查詢范式的schema上都可能需要較多次的關聯(lián)。這會增加讓查詢的代價,也可能使一些索引策略無效。因為范式化將列存放在不同的表中,而這些列在一個表中本可以屬于同一個索引。
延伸閱讀
學習是年輕人改變自己的最好方式
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26