mysql 怎么存储数据_数据是怎么存储在mysql?

本文介绍MySQL数据库中的数据存储方式,包括同步模式和异步模式。同步模式直接使用SQL语句进行数据插入,但在大量数据处理时可能导致阻塞;异步模式则通过Twisted等工具实现MySQL操作的异步化,提高效率。
摘要由CSDN通过智能技术生成

我们都知道mysql数据库能存储大量数据,但是你知道数据是怎么存储在mysql中的吗?

699d35ddb4d1e16a8f1e4048b49c005f.png

一般将数据保存到MySQL中有两种方式,同步模式和异步模式。

同步模式

同步模式是采用SQL语句,将数据插入到数据库中。但是要注意的是Scrapy的解析速度要远大于MySQL的入库速度,当有大量解析的时候,MySQL的入库就可能会阻塞。import MySQLdbclass MysqlPipeline(object):def __init__(self):self.conn = MySQLdb.connect('127.0.0.1','root','root','article_spider',charset="utf8",use_unicode=True)self.cursor = self.conn.cursor()def process_item(self, item, spider):insert_sql = """insert into jobbole_article(title,create_date,url,url_object_id) VALUES (%s,%s,%s,%s)"""self.cursor.execute(insert_sql,(item["title"],item["create_date"],item["url"],item["url_object_id"]))self.conn.commit()异步模式

采用同步模式可能会产生阻塞,我们可以使用Twisted将MySQL的入库和解析变成异步操作,而不是简单的execute,commit同步操作。

关于MySQL的配置,我们可以直接在配置文件配置数据库:MYSQL_HOST = "127.0.0.1"MYSQL_DBNAME = "article_spider"MYSQL_USER = "root"MYSQL_PASSWORD = "root"在settings中的配置,我们通过在pipeline中定义from_settings获取settings对象,可以直接获取settings配置文件中的值。

使用Twisted提供的异步容器连接MySQL:import MySQLdbimport MySQLdb.cursorsfrom twisted.enterpriseimport adbapi使用adbapi可以使mysqldb的一些操作变成异步化的操作使用cursors进行sql语句的执行和提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值