MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库,支持的数据结构为BSON格式类似JSON的一种格式,因此可以存储非常复杂的数据。
特点
- 支持各种编程语言,Java、C++、PHP、C#、Python等。
- 面向文档存储,文档格式是类似JSON、BSON格式。
- 提供丰富的查询功能。支持对数据建立索引。
- 模式自由。不需要事先定义文档格式,可以任意改变文档格式。
- 高性能、易部署、存储方式方便。
BSON
- 存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON。
- BSON是一种类似JSON的二进制的存储格式,它和JSON一样,支持内嵌的文档对象和数组对象。但是BSON有JSON没有的一些数据,如Date和Binata类型。
好处
高负载:
默认情况下,对比事务安全,MongoDB更关注高的插入速度。
处理大规模表单:
当单表格大小达到5-10GB时,MySQL表格性能会毫无疑问的降低。如果你需要分片并且分割你的数据库,MongoDB将很容易实现这一点。
使用基于位置的数据查询,查的更快:
MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置获取数据。
优缺点
优点
-
文档结构的存储方式,能够更便捷的获取数据
-
内置GridFS,支持大容量的存储
-
内置Sharding,分片简单
-
海量数据下,性能优越
-
支持自动故障恢复(复制集)
mongodb是一个介于nosql数据库和mysql数据库之间的一个数据存储系统,它没有严格的数据格式,但同时支持复杂查询,支持分片模式,复制模式,自动故障处理,自动故障转移,自动扩容,全内容索引,动态查询等功能。扩展性和功能都比较强大。 mongodb在数据查询方面,支持类sql查询,可以一个key多value内容,可以组合多个value内容来查询,支持索引,支持联合索引,支持复杂查询 ,支持排序,基本上除了join和事务类型的操作外,mongodb支持所有mysql支持的查询,甚至某个客户端api支持直接使用sql语句查询mongodb。
缺点
- 不支持事务操作,占用空间过大
- 无法进行关联表查询,不适用于关系多的数据
- 模式自由, 自由灵活的文件存储格式带来的数据错误
- MongoDB没有如MySQL那样成熟的维护工具