首先是内存映射机制,数据不是持久化到存储设备中的,而是暂时存储在内存中,这就提高了在IO上效率以及操作系统对存储介质之间的性能损耗。(毕竟内存读取最快)其次,NoSQL并不是不使用sql,只是不使用关系。没有关系的存在,就表示每个数据都好比是拥有一个单独的存储空间,然后一个聚集索引来指向。搜索性能一定会提高的。第三,语言。使用javascript语法进行操作更加高效、直接。这些是MongoDB针对关系型数据库的效率要高的原因。但是不能仅仅看重效率,这种数据库的设计带来的弊端也是有的。例如数据关系的维护会带来很多冗余数据、客户端代码需要大量针对数据库进行的IO操作、数据挖掘难以实现等等。
但MongoDB相比MySQL也有一些缺点:
不支持事务操作
占用空间过大
MongoDB没有如MySQL那样成熟的维护工具
无法进行关联表查询,不适用于关系多的数据
复杂聚合操作通过mapreduce创建,速度慢
模式自由,自由灵活的文件存储格式带来的数据错误
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2147588/,如需转载,请注明出处,否则将追究法律责任。