加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

分享 | MongoDb优化指南

发布时间:2018-11-14 14:46:31 所属栏目:编程 来源:吴纹羽
导读:1、为什么选择MongoDB? 1、机能 在大数据期间中,大数据量的处理赏罚已经成了考量一个数据库最重要的缘故起因之一。而MongoDB的一个首要方针就是尽也许的让数据库保持卓越的机能,这很洪流平地抉择了MongoDB的计划。在一个以传统机器硬盘为主导的年月,硬盘很也许

从机能优化的角度来看,荟萃的计划我们必要思量的是荟萃中数据的常用操纵,譬喻我们必要计一律个日记(log)荟萃,日记的查察频率不高,但写入频率却很高,那么我们就可以获得这个荟萃中常用的操纵是更新(增编削)。假如我们要生涯的是都市列表呢?显而易见,这个荟萃是一个查察频率很高,但写入频率很低的荟萃,那么常用的操纵就是查询。

对付频仍更新和频仍查询的荟萃,我们最必要存眷的重点是他们的范式化水平,在上篇范式化与反范式化的先容中我们相识到,范式化与反范式化的公道运用对付机能的进步至关重要。然而这种计划的行使很是机动,假设此刻我们必要存储一篇图书及其作者,在MongoDB中的关联就可以浮现为以下几种情势:

1、完全疏散(范式化计划)

示例1:

  1. {  
  2.      "_id" : ObjectId("5124b5d86041c7dca81917"),  
  3.      "title" : "怎样行使MongoDB",   
  4.       "author" : [   
  5.                ObjectId("144b5d83041c7dca84416"),  
  6.               ObjectId("144b5d83041c7dca84418"),  
  7.               ObjectId("144b5d83041c7dca84420"),  
  8.      ]  
  9.  } 

我们将作者(comment) 的id数组作为一个字段添加到了图书中去。这样的计划方法是在非相关型数据库中常用的,也就是我们所说的范式化计划。在MongoDB中我们将与主键没有直接相关的图书单独提取到另一个荟萃,用存储主键的方法举办关联查询。当我们要查询文章和评述时必要先查询到所需的文章,再从文章中获取评述id,最后用得到的完备的文章及其评述。在这种环境下查询机能显然是不抱负的。但当某位作者的信息必要修改时,范式化的维护上风就凸显出来了,我们无需思量此作者关联的图书,直接举办修改此作者的字段即可。

2、完全内嵌(反范式化计划)

示例2:

  1. {  
  2.        "_id" : ObjectId("5124b5d86041c7dca81917"),  
  3.        "title" : "怎样行使MongoDB",  
  4.        "author" : [  
  5.                 {  
  6.                      "name" : "丁磊"  
  7.                      "age" : 40,  
  8.                      "nationality" : "china",  
  9.                 },  
  10.                 { 
  11.  
  12.                      "name" : "马云"  
  13.                      "age" : 49,  
  14.                      "nationality" : "china",  
  15.                 },  
  16.                 {  
  17.                      "name" : "张召忠"  
  18.                      "age" : 59,  
  19.                      "nationality" : "china",  
  20.                 },  
  21.       ]  
  22.   } 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读