|
MongoDB是10gen公司开发的一款文档数据库产品。由于MongoDB支持非常松散的数据结构(如JSON、BSON等),在无须定义表结构的情况下,MongoDB可以存储比较复杂的数据类型。因此,MongoDB具备的优点是不仅降低了程序代码与数据结构之间的耦合性,还支持对数据的灵活查询能力。MongoDB的数据查询语法类似于面向对象的查询语言,不仅可以实现关系数据库中单表查询的多数功能,还支持对数据建立索引。 除了上述优点以外,MongoDB还支持以下功能: 1.面向集合存储,容易存储对象类型的数据。在MongoDB中,数据被分组存储在集合中,这种集合类似于RDBMS中的关系表,一个集合中可存储多个文档。 2.支持完全索引,可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS的索引一样,可以在指定属性和内部对象上创建索引,以提高查询的速度。除此以外,MongoDB还提供创建基于空间的索引能力。 3.支持复制和数据恢复。MongoDB支持主从复制机制,可以实现数据备份、故障恢复、读扩展等功能。基于副本集的复制机制提供了自动故障恢复的功能,确保了集群数据不会丢失。 4.采用二进制数据存储和自动处理分片,处理效率高,可扩展性好,负载均衡能力强。 5.编程方便。支持Perl、PHP、Java、C#、JavaScript、Ruby、C和C++语言的驱动程序,MongoDB提供了当前主流开发语言的数据库驱动包,开发人员使用任何一种主流开发语言都可以轻松编程,访问MongoDB数据库。 目前,MongoDB的主要缺点如下: 1.不支持JOIN查询,且事务处理能力较弱; 2.数据并没有实时写入硬盘,存在数据丢失风险; 3.特殊数据处理,如SQL中的GROUP BY操作的实现比较特殊。 【出处】朝乐门.数据科学,清华大学出版社,2016年8月第1版.
|