在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
面向文档的数据库系统MongoDB详解,MongoDB是一个面向文档的数据库系统。使用C++编写,不支持SQL,但有自己功能强大的查询语法。
MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。
一、MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table应用场景:
1、网站数据:
mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2、缓存:
由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
3、大尺寸、低价值的数据:
使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
4、高伸缩性的场景:
mongo非常适合由数十或者数百台服务器组成的数据库。
5、用于对象及JSON数据的存储:
mongo的BSON数据格式非常适合文档格式化的存储及查询。
6、重要数据:
mysql,一般数据:mongodb,临时数据:memcache对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。
二、将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。不适合的场景:
1、高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
2、传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
3、需要SQL的问题
4、重要数据,关系数据
优点:
1)弱一致性(最终一致),更能保证用户的访问速度
2)文档结构的存储方式,能够更便捷的获取数
3)内置GridFS,高效存储二进制大对象(比如照片和视频)
4)支持复制集、主备、互为主备、自动分片等特性
5)动态查询
6)全索引支持,扩展到内部对象和内嵌数组
缺点:
1)不支持事务
2)MongoDB占用空间过大,维护工具不够成熟
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python开发中操作Mysql步骤
Python开发中操作Mysql 步骤,关于代码的实现步骤。
5686
2019-07-12 15:33:56
怎样解决数据库高并发的问题
解决数据库高并发使用缓存式的Web应用程序架构、增加Redis缓存数据库、增加数据库索引、页面静态化、使用存储过程、MySQL主从读写分离、分表分库、负载均衡集群。
9175
2019-07-16 16:20:35
数据分析培训学习多久?都学什么?
数据分析培训学习多久?以博学谷的Python数据分析与应用课程为例,学习数据分析只要22课时。那么学习内容有哪些呢?内容大概包括了Python数据分析的相关知识。感兴趣的小伙伴可以一起来看看课程介绍。
9307
2019-09-25 17:34:14
Pandas数据可视化基础绘图教程
众所周知,Pandas是基于Python平台的大数据分析与处理的利器。在数据为王的时代,想要掌握数据分析能力,学会Pandas数据可视化工具是十分重要的。本文将带领大家一步一步学习Pandas数据可视化基础绘图,内容比较基础,相信有一定Python基础的小伙伴看完可以很快上手,现在就让我们一起来看看教程吧!
6183
2019-12-19 16:24:55
Python数据分析怎么学?要掌握哪些内容?
众所周知,与数据分析相关的Python库很多,利用Python可以生成数据表、检查数据表、数据表清洗、数据预处理、数据提取和数据筛选汇总等等,因此我们常常会使用Python完成数据分析。那么到底Python数据分析怎么学?要掌握哪些内容呢?下面我们来看看Python数据分析的学习路线和具体内容。
4548
2019-12-31 10:25:09