MySQL 是关系型数据库。
优势:
在不同的引擎上有不同 的存储方式。
查询语句是使用传统的 sql 语句,拥有较为成熟的体系,成熟度很高。
开源数据库的份额在不断增加,mysql 的份额页在持续增长。
缺点:
在海量数据处理的时候效率会显著变慢。
Mongodb 是非关系型数据库(nosql ),属于文档型数据库。文档是 mongoDB 中数据的基本
单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似
javascript 面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。
存储方式:虚拟内存+持久化。
查询语句:是独特的 Mongodb 的查询方式。
适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分片来实现高可用。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将
数据存储在物理内存中,从而达到高速读写。
成熟度与广泛度:新兴数据库,成熟度较低,Nosql 数据库中最为接近关系型数据库,
比较完善的 DB 之一,适用人群不断在增长。
优点:
快速!在适量级的内存的 Mongodb 的性能是非常迅速的,它将热数据存储在物理内存中,
使得热数据的读写变得十分快。高扩展性,存储的数据格式是 json 格式!
缺点:
不支持事务,而且开发文档不是很完全,完善。
Mysql 和 Mongodb 主要应用场景(简单了解叙述下即可)
1.如果需要将 mongodb 作为后端 db 来代替 mysql 使用,即这里 mysql 与 mongodb 属于
平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb 所负责部分以
文档形式存储,能够有较好的代码亲和性,json 格式的直接写入方便。(如日志之类) (2)
从 data models 设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如 nodejs
之类的语言来进行开发,对开发比较方便。 (3)mongodb 本身的 failover 机制,无需使
用如 MHA 之类的方式实现。
2.将 mongodb 作为类似 redis ,memcache 来做缓存 db,为 mysql 提供服务,或是后端
日志收集分析。 考虑到 mongodb 属于 nosql 型数据库,sql 语句与数据结构不如 mysql
那么亲和 ,也会有很多时候将 mongodb 做为辅助 mysql 而使用的类 redis memcache 之
类的缓存 db 来使用。 亦或是仅作日志收集分析