我们都知道mysql数据库能存储大量数据,但是你知道数据是怎么存储在mysql中的吗?
一般将数据保存到MySQL中有两种方式,同步模式和异步模式。
同步模式
同步模式是采用SQL语句,将数据插入到数据库中。但是要注意的是Scrapy的解析速度要远大于MySQL的入库速度,当有大量解析的时候,MySQL的入库就可能会阻塞。
1 2 3 4 5 6 7 8 9 |
|
异步模式
采用同步模式可能会产生阻塞,我们可以使用Twisted将MySQL的入库和解析变成异步操作,而不是简单的execute,commit同步操作。
关于MySQL的配置,我们可以直接在配置文件配置数据库:
1 2 3 |
|
在settings中的配置,我们通过在pipeline中定义from_settings获取settings对象,可以直接获取settings配置文件中的值。
使用Twisted提供的异步容器连接MySQL:
1 2 3 |
|
使用adbapi可以使mysqldb的一些操作变成异步化的操作
使用cursors进行sql语句的执行和提交
代码部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
以上代码部分,除了do_insert之外,其它均可复用。
Atas ialah kandungan terperinci 数据是怎么存储在mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!