• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MongoDB循序渐进之[特性]面向文档存储

MongoDB循序渐进之[特性]面向文档存储

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MongoDB,循序渐进,特性,面向,文档,存储等相关知识,希望本文的分享对您有所帮助

. 面向文档存储 JSON风格的文件与动态模式使MongoDB简单而强大。 Schema Design:模式设计 在MongoDB中Schema的设计是非常不同于传统的DBMS。然而Schema是非常重要的,并且是建立应用程序的第一步。 在传统的数据模型中,给一个实体关系模型一个独立的用例在

 

.


面向文档存储

JSON风格的文件与动态模式使MongoDB简单而强大。

 

Schema Design:模式设计


   在MongoDB中Schema的设计是非常不同于传统的DBMS。然而Schema是非常重要的,并且是建立应用程序的第一步。

在传统的数据模型中,给一个实体关系模型一个独立的用例在概念上是正确的,这是一个很正常的第三范式,但这通常会偏离你处于性能方面的考虑。在MongoDB中,Schema的设计不仅仅是对数据进行建模的用例。根据最常见的用例,我们对Schema的设计进行了优化,这有利有弊——用例通常是高性能的。然而有一个偏见是说Schema可能使某些动态查询相比于关系模型缺少一点优雅。

当我们要设计Schema时,需要考虑以下问题:

1.什么时候我们嵌入数据和链接(见下文)?我们在这里的决定讲影响第二个问题的答案

2.我们有多少集合,它们是什么?

3.什么时候我们需要原子操作?这些操作可以执行范围内的BSON文档,但并不是所有文档。   

4.我们将创建什么索引使查询和更新快?

5.我们如何切分?什么是分片键?

  Embedding and Linking:嵌入和链接

   在设计一个MongoDB Schema时一个关键问题是什么时候嵌入,什么时候链接。嵌入是嵌套对象和数组到BSON文档中,服务器空间,链接是文档之间的引用。   

在MongoDB中没有join——在1000服务器集群中做分布式join是很困难的。嵌入有点像“prejoined”(预连接)数据。

服务器处理在一个文档里面的操作是很容易的,美国空间,这些操作可以相当丰富。链接相比之下必须处理客户端应用程序,应用程序是通过发行一个后续查询来处理文档。

一般来说,实体之间有“包含”关系,则应该选择嵌入。当不使用连接会导致重复的数据,那么就选择使用链接。

  Collections:集合

   在MongoDB中集合类似于关系数据库中的表,香港空间,每一个集合包含文档,正如上面提到的这些文件可以相当丰富。在一个集合文档内字段是没有显式声明。然而来自于Schema设计师的一个关于那些字段将会是什么的概念,并且文档在集合内是怎样被结构化的。MongoDB不需要集合内的文档有相同的结构,然而在实践中大多数集合都是高度同质的。只要我们愿意我们就可以避免这些,例如当添加一个新字段,在这种情况一个“alter table”风格操作不是必要的。

  Atomic Operations:原子操作

   有些问题需要能够执行原子操作。例如,简单地增加计数器一个需要的原子性操作的案例。MongoDB还可以执行更复杂的操作,如下面所示的伪代码: 

atomically { if( doc.credits > 5 ) { doc.credits -= 5; doc.debits += 5; } }

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MongoDB中常用的语句总结
  • MongoDB导入json数据的方法
  • MongoDB提升性能的方法总结
  • 什么是MongoDB?MongoDB简介
  • 什么是mongoDB数据库
  • 黑马云课堂mongodb实操视频的源码课件推荐
  • 燕十八mongodb视频资料分享
  • 分享用MongoDB中oplog机制实现数据监控实例
  • 详细介绍MongoDB常用的操作
  • mongoDB是怎么实现分页的?

相关文章

  • 2018-12-05让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式
  • 2018-12-05 【MySQL 03】各种数据库对应的jar包、驱动类名和URL格式
  • 2018-12-05有关创建、选择的相关推荐
  • 2018-12-05数据库分页存储过程代码
  • 2018-12-05MySQL5.6在Centos6.5下安装教程
  • 2018-12-05【MySQL数据库】第一章解读:MySQL架构与历史
  • 2017-05-11mysql实现随机查询经验谈
  • 2017-05-11mysql利用group_concat()合并多行数据到一行
  • 2018-12-05解析MySQL高速缓存启动方法及参数(query_cache_size)
  • 2018-12-05mysql 维护常用命令

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Win10安装MySQL启动服务器失败且无错误提示
    • 全新感受Oracle 9i
    • sql语句返回主键SCOPE_IDENTITY()
    • ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
    • 什么是mongoDB数据库
    • MYSQL中的int(11)代表什么
    • Oracle常见错误诊断
    • Mac os 解决无法使用localhost连接mysql问题
    • 分享一条insert语句批量插入多条记录教程
    • Windows下安装MySQL5.5.19图文教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有