MongoDB和MySql的区别(详细)且会持续补充

 

 

MogoDB和MySql的主要区别

数据库 MongoDB MySQL
数据库模型 非关系型 关系型
存储方式

以类JSON的文档的格式存储

虚拟内存+持久化

不同引擎有不同的存储方式
查询语句 MongoDB查询方式(类似JavaScript的函数) SQL语句
架构特点

可以通过副本集,以及分片来实现高可用

(在副本集中,当主库遇到问题,无法继续提供服务时,副本集将选举一个新的主库继续提供服务,

   高可用和集群架构拥有十分高的扩展性)

常见有单点,M-S,MHA,MMM,Cluster等架构方式
数据处理方式 基于内存,将热数据存放在物理内存中,从而达到高速读写

不同引擎有自己的特点

处理海量数据效率先住变慢

成熟度 新兴数据库,成熟度较低 成熟度高
广泛度 NoSQL数据库中,比较完善且开源,使用人数在不断增长 开源数据库,市场份额不断增长
事务性

仅支持单文档事务操作,弱一致性

(本身没有带事务机制,需要在MongoDB中实现事务机制,需要通过一个额外的表,从逻辑上自行实现事务)

支持事务操作
占用空间 占用空间大 占用空间小
join操作 MongoDB没有join MySQL支持join

Mysql和Mongodb主要应用场景

1.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量:

(1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志博客之类)

(2)从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。

(3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

 

2.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。

考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候

将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。



MongoDB和MySql的区别(详细)且会持续补充

上一篇:SQLHelper通用帮助类


下一篇:Linux中修改MySql配置文件