视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MongoDB之旅(一)简介
2020-11-09 09:48:07 责编:小采
文档


MongoDB 之旅(一) 简介Posted on 随着Nosql的兴起,一直希望了解这个领域。伴随着新工作的开始,决定好好地学习一下Mongodb,近日无事,故将知识点简单总结一下,以方便日后使用: 一、简单介绍 首先,MongoDB最初是为一个要求数据库能在多台机器间优雅伸

MongoDB 之旅(一) 简介 Posted on

随着Nosql的兴起,一直希望了解这个领域。伴随着新工作的开始,决定好好地学习一下Mongodb,近日无事,故将知识点简单总结一下,虚拟主机,以方便日后使用:

一、简单介绍

  首先,MongoDB最初是为一个要求数据库能在多台机器间优雅伸缩的平台而开发的,

  其次,MongoDB是作为Web应用程序的数据存储设计的。

  一点可以区别它和现代数据库系统的是:MongoDB被设计为可水平伸缩的主要数据存储。也为解决关系型数据库的复杂的表关联提供了一种表示丰富、有层级的数据结构。

  二、MongoDB的主要特性

  1)MongoDB的数据模型是面向文档的。

  文档基本上是一组属性名和属性值的集合。属性值的数据类型:字符串、数字、 日期、数组或者其他文档。(丰富的结构和无需定义Schema,降低了数据库的复杂的逻辑设计和提高了应用程序的开发)

  2)即时查询

  意思是,无需预先定义系统接受的查询类型。无疑,关系型数据库是具有个能力,它们会严格遵照指示执行任何完备的SQL查询,但是,并非所有的数据库都支持动态查询。MongoDB尽量保持着这种能力。

  3)二级索引

  B树实现,虚拟主机,在MongoDB里,每个集合最多可以创建个索引。

  4)复制

  MongoDB中,称为副本集(replica set)的拓扑结构提供了复制功能。通过将数据分布在多台机器上以实现冗余,提供自动故障转移的功能,扩展了数据库的读能力。构成于一个主节点和多个从节点。在此,并不做详细讲解,后面会详细介绍。

  5)速度和持久性

  在数据库系统领域内,写速度和持久性存在一种相反的关系。写速度可以理解为在给定时间内数据库可以处理的插入、更新和删除操作的数量。持久性则是指保持这些写操作结果不变的时间长短。因此,数据库设计者需要在速度和持久性中做出权衡,以平衡两者的关系。

  在MongoDB中,我们可以选择写入语义,决定是否开启Journaling日志记录,通过此方式来控制速度和持久性间的平衡。

  写操作解读:MongoDB默认所有的写操作都是fire-and-forget的,即:写操作通过TCP套接字发送,不要求数据库应答。如果用户需要获得应答,可以使用特殊的安全模式发起写操作,所有的驱动都提供这个安全模式。在MongoDB2.0中,服务器空间,Journaling日志是默认开启的。所有的写操作都会提交到一个只能追加的日志里。这是运行MongoDB最安全的方式。

  6)数据库扩展

  垂直扩展:增加硬件,同时也增加了成本;

  水平扩展:MongoDB的水平扩展非常易于管理,它通过基于范围的分区机制,即自动分片(auto-sharding)来实现这一设计目标,自动分片机制会自动管理各个节点之间的数据分布。

  三、MongoDB的核心服务器和工具

  1)核心服务器

  执行mongod(windows上是mongodb.exe)可以运行核心服务器。mongod服务器进程使用一个自定义的二进制协议从网络套接字上接受命令。mongod进程的所有数据文件默认都存储在/data/db里。它没有内存等参数的配置,减少了开发者的任务,数据文件是通过mmap()系统调用被映射成了系统的虚拟内存。

  2)Javascript Shell

  基于Javascript的一个工具,用于管理数据库和操作数据。

  3)命令行工具

  ·mongodump:用原生的BSON格式将数据库的数据保存下来,优势是热备时非常有用。备份后能方便地用mongorestore恢复。

  ·mongoexport:支持JSON、CSV、TSV数据,通过mongoimport导入,它还能用于大数据集的初始导入。

  ·mongosniff:一个网络嗅探工具,用来观察发送到数据库的操作。基本就是吧网络上传输的BSON转换为易于人们阅读的Shell语句。

  ·mongostat:与iostat类似。持续轮询MongoDB和系统以便提供有帮助的统计信息,包括每秒操作数(插入、删除、更新、查询等)、分配的虚拟内存数量以及服务器的连接数。 

下载本文
显示全文
专题