mongodb FAQ

MongoDB是什么?

MongoDB是一个面向文档的关系型数据库,它的数据模型类似JSON格式。与SQL数据库相比,它不支持联合和事务,但是支持二级索引,支持文档级的原子写操,完全一致性的读操作。

此外还可支持主从复制,自动恢复和横向扩容。

MongoDB使用BSON,这是一种类似JSON的二进制对象格式。

MongoDB有表(table)吗?

MongoDB没有表,它的数据保存在collections里面,相当于SQL数据库的表。一个collection包含一个或多个文档,每个文档相当于SQL数据库表的一个记录。每个文档有一个或多个字段,对应于SQL数据库记录的一个列。

collection和SQL数据库表的主要区别是:同一个collection内的各个文档都可以有不同的字段,就是说用户可以对每个文档定义不同的字段,而不要求每个文档都有相同的字段。

MongoDB有模式(schemas)吗?

MongoDB采用动态模式。用户可以不定义结构就建立一个collection,就是说collection里的文档的字段和类型都无需定义。

 

MongoDB可以用于哪些应用?

MongoDB是基于通用目的设计的,可以用于很多场合,例如内容管理系统,移动应用,游戏,电子商务,数据分析,归档和日志等。

MongoDB不可用于需要SQL,联合和事务的应用。

MongoDB支持事务吗?

MongoDB不支持要求ACID的事务。

MongoDB提供了一些基本的事务能力,单个文档内支持原子操作。

MongoDB需要大内存吗?

不是必须的,MongoDB可以运行在小内存机器内。

MongoDB自动把服务器的所有资源作为cache,但是这是动态使用的,如果其它进程需要申请内存,MongoDB会释放cache使用的内存。

从技术实现上来说,MongoDB内存由操作系统的虚拟内存系统管理,这意味着MongoDB尽可能多的使用可用的内存,但是必要时会被交换到硬盘,内存越多就性能越高。

应该如何配置cache大小?

MongoDB的cache不可配置。MongoDB使用内存映射文件自动使用系统的所有可用内存。

MongoDB需要独立的caching层吗?

不需要。MongoDB的文档在数据库中的存储形式和在应用中的表现形式是一样的,因此不需要额外的caching层,这和SQL数据库有本质的不同,后者需要一个独立的caching层。

MongoDB处理caching吗?

是的。MongoDB把最近访问的数据都缓存到内存中。如果你为查询建立了索引,那么索引就被缓存到内存中。

MongoDB没有实现查询cache,而是从索引或数据文件中直接进行查询。

写入操作是立即写入磁盘还是延迟写入?

 

写入是在100毫秒内物理写入到日志,写入日之后数据就是持久的,即使重启也能恢复。

但是MongoDB把数据写入文件是延迟的,但是最多不超过1分钟。这不会影响持久性,因为日志足以保证数据可恢复。本行为可配置,具体参见syncdelay.

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值