Mongodb FAQ fundamentals(基础篇)

Mongodb FAQ(基础篇),是官方文档的翻译。如有翻译不到之处,还请谅解。

1、Mongdb是什么数据库?

mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务。主从复制,故障自动转移,内建的水平扩展是mongodb的几个主要特性。同时还支持二级索引,表达式查询语言,基于文档的原子写操作,一致性读取。

 

2、Mongdb有表吗?

mongodb的collections和RMDB的table的两个重要区别。一是你可以只向一些document添加某一列的属性,而不用将collection里面的所有document都增加列属性。二是Documents in a single collection may have unique combination and set of fields. Documents need not have identical fields,

 

3、mongodb一般用作什么?

mongodb设计的主要目的是为了处理大规模数据(大数据处理),例如内容管理系统,移动应用,游戏,电商等。请不要用mongodb来管理那些需要sql,表连接和多对象事务处理的操作。

 

4、mongodb支持事务吗?

不支持ACID事务,但是mongodb支持一些基本的事务,比如文档的原子操作。那就是说,我们可以将一个document的两个属性同时进行更新,这个操作要不都完成,要不都不完成,前提是这两个属性都是一个文档。另外,mongodb还能保证修改能够持久化(即ACID中的D),为了使用mongodb的这个特性,必须开启journaling,这个特性仅在64的版本默认是开启的,You must also issue writes with a write concern of {j: true} to ensure that the writes block until the journal has synced to disk.

 

5、运行mongodb需要很大的内存吗?

不是必须的,mongodb可以运行在内存很小的机器上。Mongodb将使用系统的所有的可用内存作为他的缓存,系统资源管理器显示mongodb占满了系统的所有内存,但mongodb会动态的改变这种情况,如果另外一个程序向操作系统申请内存,则mongodb会给另外的进程腾出内存供别的进程使用。

 

6、如何配置mongodb的缓存?

不需要配置,mongodb将使用尽可能多的内存作为缓存,这个跟OS缓存文件的方法是一样的。

 

7、Mongodb的写操作是立即写入磁盘还是延迟写入?

写操作将在100毫秒之内写入物理磁盘的日志文件,At that point, the write is “durable” in the sensethat after a pull-plug-from-wall event, the data will still be recoverable after a hard restart。因为日志文件几乎是立即被持久化,因此真正写入数据文件方式是延迟写入。mongodb真正的写入数据文件甚至会延迟1分钟。但这并不会影响到数据的持久性,因为日志文件已经记录了足够的信息使mongodb即便崩溃,也能把数据恢复。

 

8、Mongodb是否有独立的缓存来应付应用级别的缓存?

木有。

 

9、Mongodb是否有使用缓存?

是的,mongodb会把最近使用的数据都放在内存里面,如果你为某些数据创建了索引,并且这些索引数据在内存里面,则mongodb将直接从内存进行对索引进行查询。Mongodb不使用查询缓存,mongodb总是直接从索引或者数据文件中查询数据。

 

10、Mongodb是用什么语言写的?

c++。客户端驱动则可能是java,php等。

 

11、32位版mongodb有什么限制?

mongodb使用内存映射文件,当使用32位mongodb时,这种文件的大小被限制在2G,包括数据文件和索引文件。因为mongodb被用来处理大数据量,所以千万不要在生产环境部署32版mongodb。而64位版本却不存在这样的问题。

 

 

 

 

对这类话题感兴趣?欢迎发送邮件至 [email protected]
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问  我的空间

你可能感兴趣的:(mongodb)