MongoDB和MySQL是目前比较流行的开源数据库,那么它们的主要区别是什么?该如何选择?下面我重点详解@mikechen
MongoDB
我们先来大致了解下MongoDB的关键特性与功能,然后再比较MySQL的关键特性,这样更清楚两者的差异性。
MongoDB是一个高性能,开源,无模式的文档型数据库,开发语言是C ,它在许多场景下可用于替代统的关系型数据库或键/值存储方式。
1.MongoDB优点
1)更高的写负载,MongoDB拥有更高的插入速度;
2)处理很大的规模的单表,当数据表太大的时候可以很容易的分割表;
3)高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移;
4)快速的查询,MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中,如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度;
5)非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。
2.MongoDB缺点
1)不支持事务;
2)MongoDB占用空间过大 ;
3)MongoDB没有成熟的维护工具;
3.MongoDB应用场景
1.)适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;
2) 非常适合文档化格式的存储及查询;
3.)高伸缩性的场景:MongoDB非常适合由数十或者数百台服务器组成的数据库。
4.)对性能的关注超过对功能的要求。
MySQL
首先是MySQL免费的开源资源,用的也是最多的,不仅性能强大,扩展了SQL语言的实际应用,而且非常简洁。
同时又是开源资源,不需要前期软件资源上的投资,通常中小企业都可以使用的。
由于是C和C 编写的,所以对于操作系统的应用也是非常广泛,Windows,MAC还有Linux都是可以适应的。
而且作为一个关系型数据库,通过关系模型构建的数据库,这种数据库灵活性高,而且速度快,还支持多线程,所以可以充分利用CPU资源,效率是杠杠滴。
它的特点是既可以作为一个应用程序嵌入到网络环境中,也可以作为一个库夹在语言中。这也是展示了他的灵活性。
1.MySQL优点
- 在不同的引擎上有不同 的存储方式。
- 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
- 开源数据库的份额在不断增加,mysql的份额页在持续增长。
2.MySQL缺点
在海量数据处理的时候效率会显著变慢。
MongoDB与MySQL的区别
1.数据库模型
2.存储方式
MongoDB以类JSON的文档的格式存储,MySQL以不同引擎有不同的存储方式。
3.查询语句
MongoDB查询方式类似JavaScript的函数,MySQL是标准的SQL语句查询,更加通用。
4.数据处理方式
MongoDB基于内存,将热数据存放在物理内存中,MySQL采用不同引擎有自己的特点。
5.成熟度
MongoDB新兴数据库,成熟度较低,MySQL成熟度高。
6.广泛度
MongoDB在NoSQL数据库中比较完善且开源,mysql开源数据库,市场份额不断增长。
7.事务性
MongoDB仅支持单文档事务操作,弱一致性,mysql支持事务操作,所以事务的场景优先选择MySQL。
8.占用空间
MongoDB占用空间大,MySQL占用空间小。
9.Join操作