目录
MongoDB和MySQL数据库的区别?
1.数据库模型不同
2.存储方式不同
3.查询效率不同
4.数据一致性(事务处理)
5.数据概念不同
6.字段管理不同
7.支持数据分片不同
MongoBD和Redis数据库的区别?
1.存储方式不同
2.数据库类型不同
3.支持的数据结构不同
4.查询效率不同
5.性能不同
6.对海量数据处理不同
7.可靠性(持久化)方式不同
8.数据一致性(事务支持)不同
MongoDB和MySQL数据库的区别?
1.数据库模型不同
MongoDB是非关系型数据库;而Mysql是关系型数据库。
2.存储方式不同
MySQL数据是存储在磁盘上的;不同引擎有不同的存储方式。
MongoDB的数据存储是内存+磁盘的形式;以JSON文档的格式存储。
3.查询效率不同
由于数据库的存储方式的不同,导致查询的效率也不同。MongoDB数据是直接对内存进行操作的,查询的速度是磁盘不可比的。
从查询效率来说,MongDB > MySQL
对此,虽然都可以对海量数据进行处理,但mysql的处理效率要低的多。
4.数据一致性(事务处理)
MongoDB不支持事务和多表操作。在针对某些业务场景,比如说用户账户,需要满足多个操作同时成功同时失败,这时用MongoDB就不合适。
Mysql支持事务和多表操作。
5.数据概念不同
传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。
6.字段管理不同
MongoDB支持动态字段管理。如果现在数据库表中的字段有2项,接着保存一条3项的数据、在保存一条4项的数据、5、6项等等,数据的字段数量和类型是灵活多变的。但是MySQL一旦将字段定义好就很难在修改。
7.支持数据分片不同
两种数据库都支持数据分片;
不同的是MongoDB是内置数据分片;而MySQL需借助第三方服务和组件来实现,成本较高。
MongoBD和Redis数据库的区别?
MongoDB和redis都是非关系型数据库,那它们的区别如下:
1.存储方式不同
Redis数据是存储在内存上的;
MongoDB的数据存储是内存+磁盘的形式;
2.数据库类型不同
MongoDB是一种文档型数据库,它将数据存储为文档,即可以存放xml/json/bson类型的数据,通常使用JSON格式表示。
Redis是一种键值型数据库,它将数据存储为键值对。
3.支持的数据结构不同
Redis支持数据结构比较丰富,包括list、set、hash等,这使得它非常适用于缓存和消息队列等应用程序。
MongoDB数据结构比较单一,但支持丰富的数据表达,索引;最类似关系型数据库,支持查询语言非常丰富。
4.查询效率不同
由于数据库的存储方式的不同,导致查询的效率也不同。
redis是纯内存数据库,在内存中存储数据非常快。相对来说查询效率高于MongoDB数据库;
从查询效率来说,Redis > MongDB
5.性能不同
性能都比较高,总体来说,TPS(每秒钟系统能够处理的交易或事务的数量)方面redis要大于mongodb
6.对海量数据处理不同
虽然两者都可以对海量数据进行处理,但Redis是基于内存的数据库,存储海量数据都将会存储在内存中的,需要更多更多的内存,但内存很贵的成本极高;
而MongoDB是内存+磁盘的形式,还有内置数据分片;当内存不足时,可以保存在磁盘中,同时也可以采用内置数据分片实现多个服务器之间的串联,将数据分散到其他服务器中,这样数据存储量就大大增加了。
7.可靠性(持久化)方式不同
对于数据持久化和数据恢复,redis支持快照RDB和指令追加AOF进行数据持久化;
而MongoDB从1.8版本开始采用binlog(一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息)方法支持持久化的可靠性。
8.数据一致性(事务支持)不同
redis事务支持比较弱,只能保证事务中的每个操作连续执行。
mongoDB不支持事务。
redis是纯内存数据库,当内存不足时会触发内置的淘汰策略;将Redis中的一部分数据进行删除,删除的部分内容就真的丢失了。
MongoDB结构化存储数据的格式是Bson,方便扩展;可以根据某个字段进行查询;这并不是redis所擅长的。对于redis更好的适用场景是做缓存提高效率。
总的来说,MongoDB适用于需要处理大量复杂数据的应用程序,而Redis适用于需要快速读取和写入数据的应用程序。