A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杰哥,我就服你 于 2018-11-1 14:37 编辑

一.mongodb的特点:
1. 模式自由 :可以把不同结构的文档存储在同一个数据库里
2. 面向集合的存储:适合存储 JSON风格文件的形式,
3. 完整的索引支持:对任何属性可索引,
4. 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移。
5. 自动分片:支持水平的数据库集群,可动态添加额外的机器。
6. 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组。
7. 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划。
8. 高效的传统存储方式:支持二进制数据及大型对象(如图片等...)。

二. mongodb的应用场景:
1. 网站数据:mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2. 缓存:由于性能很高,mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由 mongo 搭建的持久化缓存可以避免下层的数据源过载。
3. 大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
4. 高伸缩性的场景:mongo 非常适合由数十或者数百台服务器组成的数据库。
5. 用于对象及 JSON 数据的存储:mongo 的 BSON 数据格式非常适合文档格式化的存储及查询。
6. 重要数据:mysql,一般数据:mongodb,临时数据:memcache 7. 对于关系数据表而言,mongodb 是ᨀ供了一个更快速的视图 view;而对于 PHP 程序而言,mongodb 可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。
8. 将 mongodb 代替 mysql 的部分功能,主要一个思考点就是:把 mongodb 当作 mysql 的一个 view(视图),view 是将表数据整合成业务数据的关键。比如说对原始数据进行报表,重要数据,关系数据
三. 不适合的场景:
1. 高度事物性的系统:例如银行或会计系统。传统的关
系型数据库目前还是更适用于需要大量原子性复杂事务的应用
程序。
2. 传统的商业智能应用:针对特定问题的 BI 数据库会对
产生高度优化的查询方式。对于此类应用,数据仓库可能是更
合适的选择。
3. 需要 SQL 的问题
4. 重要数据,关系数据

四. mongodb优缺点

优点:弱一致性(最终一致),更能保证用户的访问速度文档结构的存储方式,能够更便捷的获取数内置 GridFS,
高效存储二进制大对象 (比如照片和视频支持复制集、主备、互为主备、自动分片等特性动态查询全索引支持,扩展到内部对象和内嵌数组
缺点:不支持事务,MongoDB 占用空间过大,维护工具不够成熟




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马