MySQL、Redis、MongoDB三者的优缺点和使用场景

MySQL Redis MongoDB
类型 RDBMS关系型数据库 Nosql非关系型数据库 Nosql非关系型数据库

特点

数据通常需要做结构化查询,比如join,这时候,关系型数据库就要胜出一筹  读写性能优异。丰富的数据类型,包括set, zset, list, hash, string 这五种数据类型,操作非常方便。 高性能、易部署、易使用、高速读写。MongoDB 是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。
使用场景 保存关系复杂的高价值数据。当你的数据为结构化数据,符合关系型数据库的标准时,优先考虑使用mysql等关系型数据库,因为发展悠久,社区强大,数据量太大考虑优化、分库分表等策略; 缓存经常被读取的热数据。Redis是完全基于内存的,存储数据量较少,所以不单独用来作为业务数据库存储,可以配合MySQL、MongoDB等解决有实时数据获取需求的快速处理; 保存海量低价值的数据。数据不是特别重要,数据表结构变化较为频繁,数据量特别大,数据的并发性特别高,对事务无要求的场景。例如:日志、地理位置、json、监控数据、用户评论、爬虫数据。
优点 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高

由于数据存放在内存中,因此读写性能高;

提供面向文档存储,操作简单,

支持大容量存储,内置GridFS。

海量数据性能优越、高扩展。
缺点 海量数据处理的时候效率会显著变慢 占用内存大,修改配置重启耗时。Redis 所有数据都是放在内存中的,持久化使用 RDB 方式或者 aof 方式。 不支持事务、占用空间大、没有特别成熟的工具

当物理内存够用的时候,Redis > MongoDB > MySQL

上一篇:mongodb 4.x绑定多个ip启动报错


下一篇:MongoDB的分片