【Python面经题】爬虫数据为什么选择Mongodb存储?

【Python面经题】爬虫数据为什么选择Mongodb存储?


2024年5月17日发(作者:)

(1)问题分析

面试官主要考核Mongodb和MySQL数据库的特,以及关系型与非关系型数据库。

(2)核心问题讲解

MySQL属于关系型数据库,它具有以下特:

在不同的引擎上有不同的存储。

查询语句使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

源数据库的份额在不断增加,MySQL的份额也在持续增长。

处理海量数据的效率会显著变慢。

Mongodb属于非关系型数据库,它具有以下特:

数据结构由键值对组成。

1

存储:虚拟内存+持久化。

查询语句独特的Mongodb的查询。

可以通过副本集、分片来实现高可用。

数据存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在

物理内存中,从而达到高速读写。

新兴数据库,成熟度较低。

(3)问题扩展

关系型数据库可以理解为依赖一个模型来创建的数据库,比如们使用的MySQL中的

表由横列和纵列组成的一个二维表格。关系型数据库可以通过关系模型使多个表的数据关

联起来,比如们平时说的一对一、一对多、多对一。由于建立在数据模型的基础上,所以

2

们可以通过SQL语句很方便的在多个表之间复杂的查询操作。关系型数据库相对,因为

直接存储在硬盘中所以突然的宕机、停电等意外不会导致数据丢失。MySQL的存储由自

身的引擎决定的,常用的引擎有Innodb和MyISAM。他们主要的区别就MyISAM不支持

事务,强调的性能,执行速度比Innodb要快,Innodb支持事务等高级数据库功能。

非关系型数据库即们常说的NoSQL数据库,部署起来都比较简单,没有关系型数据

库那么复杂。Mongo的存储为虚拟内存+持久化存储,Mongo将数据写入内存中,再

由虚拟内存管理器将其持久化到硬盘中,因此写操作会比关系型数据库快很多。NOSQL

的存储格式key-value形式,可以像关系型数据库那样存储基础数据类型的数据,也可以

存储集合、对象等等。NoSQL虽然性能比较高,但并不支持事物,也不能进行联表查询,

一般用于较规模数据的存储。

(4)结合中使用

3


发布者:admin,转转请注明出处:http://www.yc00.com/web/1715914728a2691183.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信