跳到主要内容

1.1数据库对比

MySQL数据库&MongoDB

MySQLMongoDB
数据库类型非关系型关系型
存储方式虚拟内存+持久化不同的引擎有不同的方式
查询方式独特的Mongodb方式Sql语句
架构特点可以通过副本集,以及分片来实现高可用单点,M-S,MHA,MMM,Cluster等架构方式
数据处理方式基于内存,将热数据存在物理内存中,从而高速读写不同引擎拥有自己的特点
成熟度新兴数据库,成熟度较低拥有较为成熟的体系
广泛度Nosql数据库中,mongodb是比较完善的DB之一,开源数据库的份额在不断增加,mysql的份额也在持续增长

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

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

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

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

将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。