首页技术文章正文

python爬虫用什么数据库好?Mysql和Mongdb哪个有优势?

更新时间:2020-12-11 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif

python爬虫用什么数据库好?Mysql和Mongdb哪家有优势?我们从Mysql、Mongdb各自特点和关系数据库和非关系数据库的特点来分析。

Mysql和Mongdb的特点

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

·在不同的引擎上有不同的存储方式。

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

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

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


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

·数据结构由键值对组成。

·存储方式:虚拟内存+持久化。

·查询语句是独特的Mongodb的查询方式。

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

·数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

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


关系数据库和非关系数据库特点

关系型数据库可以理解为依赖一个模型来创建的数据库,比如我们使用的MySQL中的表是由横列和纵列组成的一个二维表格。关系型数据库可以通过关系模型使多个表的数据关联起来,比如我们平时说的 一对一、一对多、多对一。由于是建立在数据模型的基础上,所以我们可以通过SQL语句很方便的在多个表之间做复杂的查询操作。关系型数据库相对安全,因为直接存储在硬盘中所以突然的宕机、停电等意外不会导致数据丢失。MySQL的存储方式是由自身的引擎决定的,常用的引擎有Innodb和MyISAM。他们主要的区别就是MyISAM 不支持事务,强调的是性能,执行速度比Innodb要快,Innodb提供支持事务等高级数据库功能。


非关系型数据库即我们常说的NoSQL数据库,部署起来都比较简单,没有关系型数据库那么复杂。Mongo的存储方式为虚拟内存+持久化存储,Mongo将数据写入内存中,再由虚拟内存管理器将其持久化到硬盘中,因此写操作会比关系型数据库快很多。NOSQL的存储格式是key-value形式,可以像关系型数据库那样存储基础数据类型的数据,也可以存储集合、对象等等。NoSQL虽然性能比较高,但是并不支持事物,也不能进行联表查询,一般用于较大规模数据的存储。

python爬虫用什么数据库好?Mysql和Mongdb用哪个好?
建议用MongoDB,理由是:因为你用爬虫,不光是要把网页抓下来,重要的是,要把抓取的网页中的信息提取出来,保存到数据库中。而如果未来的字段会发生变化(增加、删除、修改),那么用MongoDB这种键值数据库是再合适不过了,因为,你插入到数据库中的每条记录中都同时包含着数据的的“键”和“值”,新数据使用新的格式保存,而旧数据使用旧的格式保存,你不需要做任何的操作就可以保持数据格式的一致性。反之,如果你用SQL类数据库的话,你就必须修改数据库的格式,还要保证旧数据在新格式下的可用性,而这往往是非常麻烦的。


猜你喜欢:

关系数据库和非关系型数据库详解

MySQL数据库的高效检索如何实现?

常见的数据库有哪几种?

Pyhton+数据分析培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!