1.1数据库对比
MySQL数据库&MongoDB
MySQL | MongoDB | |
---|---|---|
数据库类型 | 非关系型 | 关系型 |
存储方式 | 虚拟内存+持久化 | 不同的引擎有不同的方式 |
查询方式 | 独特的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来使用。 亦或是仅作日志收集分析。