(自己整理的,可能没有那么全覆盖的完整)
MongoDB简介
一款介于关系数据库和非关系数据库之前的产品,基于分布式文件存储的数据库,旨再为WEB引用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档(类似JSON对象),数据结构由键值(key=>value)对组成支持丰富的查询表达,可以设置任何属性的索引;支持副本集、分片。

MongoDB的优点:

1、弱一致性(最终一致),更能保证用户的访问速度

2、文档结构的存储方式,能够更便捷的获取数据
对于一个层级式的数据结构来说,如果要将很多的数据使用扁平式的、表状的结构来保存数据,这不管是在查询还是获取数据时都会很困难。

3、第三方支持丰富。
这是它跟其它的NoSQL相比,MongoDB也具有的优势,因为现在网络上的很多NoSQL开源数据库完全属于社区型的,没有官方支持,给使用者带来了很大的风险。
而开源的文档数据库MongoDB背后有商业公司为它提供商业培训和支持。

4、性能优越
在使用场合下,千万级别的文档对象,近10G的数据,对有索引的ID的查询不会比mysql慢,而对非索引字段的查询,则是全面胜出。 mysql实际无法胜任大数据量下任意字段的查询,而mongodb的查询性能可以,同时它的写入性能也很厉害,可以写入百万级别的数据。

MongoDB的缺点:

1、MongoDB不支持事务操作
所以事务要求严格的系统,比如银行系统就不能用它。

2、MongoDB占用空间过大
2.1、空间的预分配:
当MongoDB的空间不足时它就会申请生成一大块硬盘空间,而且申请的量都是有64M、128M、256M来增加直到2G为单个文件的较大体积,并且随着数量叠增,可以在数据目录下看到整块生成而且不断递增的文件。

2.2、删除记录不释放空间:
这很容易理解,为避免记录删除后的数据的大规模挪动,原记录空间不删除,只标记“已删除”即可,以后还可以重复利用。

3、(开发和IT运营要注意)MongoDB没有MySQL那样成熟的维护工具