【发布时间】:2015-03-01 01:49:57
【问题描述】:
我正在 Python 3.4 中使用 peewee 作为 ORM(伟大的 ORM 顺便说一句!)来开发简单的 html 抓取工具。我的脚本需要一堆站点,提取必要的数据并将它们保存到数据库中,但是每个站点都在分离过程中被抓取,以提高性能并且保存的数据应该是唯一的。不仅站点之间可能存在重复数据,特定站点上也可能存在重复数据,因此我只想存储一次。
示例: 帖子和类别 - 多对多关系。在抓取过程中,同一类别在不同的帖子中出现多次。我第一次想将该类别保存到数据库(创建新行)。如果同一类别出现在不同的帖子中,我想将该帖子与数据库中已创建的行绑定。
我的问题是 - 我必须使用原子更新/插入(插入一篇文章、保存、get_or_create 类别、保存、将新行插入多对多表、保存)还是我可以以某种方式使用批量插入?解决这个问题的最快方法是什么?也许一些进程之间共享的临时表,将在工作结束时批量插入?我正在使用 MySQL 数据库。
感谢您的回答和您的时间
【问题讨论】:
标签: python mysql multiprocessing bulkinsert peewee