1、Mongodb的优势主要体现在哪?

1)开源。2)免费 。3)性能高。4) 配置简单并且灵活。5) 使用灵活。

2、Mongodb的劣势主要体现在哪?

1) 开源软件的特点:更新快,应用工具不完善。

2) 操作事务。Mongodb不支持内建的事务功能,对于某些应用并不适用,可主要用于互联网应用系统(例如微博、QQ空间等),这些应用系统对于事务的要求较低。

3、Mongodb的横向扩展问题?

Memcache基本可以无限的增加机器来横向扩展,原因在于我们是通过客户端来决定键值具体保存在那个实例上的,在获取的时候也能够很明确的知道这个键值在哪个实例

上,即使是一次性获取多个键值也可以。但对于数据库系统来说,我们通过各种各样的方式进行数据的 Sharding,但都无法真正做到实时数据分散在各个节点。原因在于无论

我们按照何种方式进行Sharding(比如我们按照用户ID去分片),都无法适应用户灵活的查询条件的变化。例如数据库采用用户ID去分片,当用户根据一定的条件获取批量的

数据时,查询条件是按照年龄或教育程度,最后按照姓名排序。。。。最简单方式是按照业务功能对数据进行切片,将经常操作的业务数据分开保存,减少查询数据量。

2) 多线程,多进程。在写入速度达不到预期的情况下我们多开几个线程同时写,或者多开几个Mongodb进程(同一服务器上),也就是多个数据库实例,然后向不同的实例

去写。但很遗憾,这样做根本不能提高数据库的写入速度。但使用memcache的时候多开线程可以提高写入速度,原因是内存数据交换的瓶颈我们并未触及,而对于磁盘来

说IO的瓶颈每秒那么几十兆的是很容易达到的,一旦达到这个瓶颈了,无论是开多少个进程都无法提高性能了。


转载于:https://blog.51cto.com/sunbean/802299