MongoDB和MySQL的区别详解(9大核心区别)

MongoDB和MySQL的区别详解(9大核心区别)-mikechen

MongoDBMySQL是目前比较流行的开源数据库,那么它们的主要区别是什么?该如何选择?下面我重点详解@mikechen

MongoDB

我们先来大致了解下MongoDB的关键特性与功能,然后再比较MySQL的关键特性,这样更清楚两者的差异性。

MongoDB是一个高性能,开源,无模式的文档型数据库,开发语言是C ,它在许多场景下可用于替代统的关系型数据库或键/值存储方式。

MongoDB和MySQL的区别详解(9大核心区别)-mikechen

 

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的区别

MongoDB和MySQL的区别详解(9大核心区别)-mikechen

1.数据库模型

MongoDB是非关系型,MySQL是关系型数据库。

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操作

MongoDB没有Join操作,MySQL支持Join操作。

作者简介

陈睿|mikechen,10年+大厂架构经验,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法