MongoDB与MySQL有区别吗?用一个表格跟你说明

160 阅读2分钟
MongoDBMySQL
数据库模型非关系型关系型
存储方式虚拟内存+持久化不同引擎有不同存储方式
查询语句独特MongoDB查询方式传统SQL语句
架构特点可通过副本集和分片实现高可用常见有单点、M-S、MHA、MMM、Cluster等架构方式
数据处理方式基于内存,将热数据存在物理内存中,从而达到高速读写不同引擎拥有其自己的特点
成熟度新兴是数据库,成熟度较低拥有较为成熟的体系,成熟度较高
优势1、无需经过sql层的解析,读写性能高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式,nosql使用key:val的形式,文档的形式,图片形式等等,而关系型数据库则只支持基础类型;4、本身的failover(故障切换)机制,无需使用如MHA之类的方式实现。1、容易理解 2、使用方便 3、易于维护 4、事务一致 5、支持SQL,可用于复杂的查询
缺点1、不提供sql支持,学习成本高 2、无事务处理,附加功能和报表支持也不好1、为了维护一执行需要消耗大量的性能 2、影响读写 3、固定的表结构 4、不适合高并发读写需求 5、不适合海量数据的高效率读写
主要应用场景1、数据以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) 2、从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助 3、将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析
数据库databasedatabase
数据库表/集合collectiontable
数据记录行/文档documentrow
数据字段/域fieldcolumn
索引indexindex
表连接不支持table joins
主键primary key,自动将_id字段设置为主键primary key