【MongoDB】MongoDB和MySQL数据库的区别? MongoBD和Redis数据库的区别?

目录

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适用于需要快速读取和写入数据的应用程序。

猜你喜欢

转载自blog.csdn.net/zsy3757486/article/details/130500209