MongoDB范式化与反范式化

原创 2017年01月03日 21:20:00

范式化:将数据分散到多个不同的集合,不同集合之间可以相互引用数据。如果要修改数据,只需修改保存这块数据的文档就行。但是MongoDB没有连接(join)工具,所以在不同集合之间执行连接查询需要进行多次查询。

反范式化:将每个文档所需的数据都嵌入在文档内部。每个文档都有自己的数据副本,而不是所有文档共同引用一个数据副本。但是如果数据发生变化,那么所有相关文档都需要进行更新。

范式化能够提高数据写入速度,反范式化能够提高数据读取速度。

混合使用内嵌数据与引用数据:子文档数组用于保存常用信息,需要查询更详细信息时通过引用找到实际文档。

数据生成越频繁,就越不该将这些数据内嵌到其他文档中,应该将这些内容保存在单独的集合中,使用引用的方式进行访问。
这里写图片描述

基数:一个集合中包含的对其他集合的引用数量叫做基数。常见的关系有一对一、一对多、多对多。”少”的关系使用内嵌的方式比较好,”多”的关系使用引用的方式比较好。

版权声明:本文为博主原创文章,未经博主允许不得转载。

MongoDB中的范式与反范式

本文摘录自《MongoDB权威指南》第八章,可以彻底回答以下两个问题: http://segmentfault.com/q/1010000000364944http://segmentfault...
  • lein_wang
  • lein_wang
  • 2016年11月07日 11:49
  • 651

数据库的范式化和反范式化模型

在实际工作中,数据库数据模型的建立和选择对数据的“增删改查”具有直接影响,从基本角度来讲,数据模型具有“范式化”和“反范式化”两种,而在实际工作场景中,常依赖实际情况采取这两种模型混用。 范式化范式化...
  • wh1511995112
  • wh1511995112
  • 2016年04月28日 10:14
  • 915

mongodb

原文地址:http://blog.csdn.net/jakenson/article/details/7060431 MongoDB的内部构造《MongoDB The Definitive Guid...
  • kucaozhuzhu
  • kucaozhuzhu
  • 2014年03月09日 12:08
  • 2593

获得LayoutInflater对象的几种方式

在android中获得LayoutInflater对象的几种方式 1.通过Activity的getLayoutInflater()方法; 2.通过Context的getSystemServicer...
  • tanjunjie621
  • tanjunjie621
  • 2012年03月04日 21:29
  • 519

MongoDB中的范式与反范式

本文摘录自《MongoDB权威指南》第八章,可以彻底回答以下两个问题: http://segmentfault.com/q/1010000000364944http://segmentfault...
  • lein_wang
  • lein_wang
  • 2016年11月07日 11:49
  • 651

mongodb内嵌设计

数据库性能对软件整体性能的影响是不言而喻的,那么,当我们使用MongoDB时改如何提高数据库性能呢?   1.范式化与反范式化   在项目设计阶段,明确集合的用途是对性能调优非常重要的一步...
  • shmnh
  • shmnh
  • 2015年04月06日 23:36
  • 614

Mongo DB 初识

前言2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该。近期会花时间研究下mongo。本文是初识m...
  • FS1360472174
  • FS1360472174
  • 2016年10月23日 15:53
  • 1449

面对Schema free的MongoDB,如何规范你的schema

面对Schema free的MongoDB,如何规范你的schema 原创 2016-01-15 周李洋 DBAplus社群 作为近年最为火热的文档型数据库,MongoDB受到了越来...
  • shaochenshuo
  • shaochenshuo
  • 2016年01月21日 10:45
  • 1249

数据库的反范式化(Denormalization)设计

范式化设计目标的主要目的就是“减少不必要的更新”。但事事都具有两面性,在对数据库进行范式话设计的时候也不可避免的带来了一些副作用。一个完全范式化设计的数据库经常会面临“查询缓慢”这个问题。数据库越范式...
  • zbuger
  • zbuger
  • 2016年03月31日 15:16
  • 1313

数据库设计Step by Step (10)——范式化

引言:前文(数据库设计Step by Step (9)——ER-to-SQL转化)讨论了如何把ER图转化为关系表结构。本文将介绍数据库范式并讨论如何范式化候选表。我们先来看一下此刻处在数据库生命周...
  • luoweifu
  • luoweifu
  • 2013年05月01日 08:09
  • 2254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MongoDB范式化与反范式化
举报原因:
原因补充:

(最多只允许输入30个字)