快速数据管理 - SQL 和 python

问题描述 投票:0回答:0

我有一个 python scrypts,它可以抓取网络,找到新的 url,也抓取它们,直到永远。

目前我将我的 url 存储在一个只有一列(甚至没有索引列)的 SQL 表中,我的 python 偶尔(每小时)调用一个函数,该函数将所有 DISINCT url 从表 A 复制到表 B,trunkate 表A,将表 B 中的所有值复制到表 A 并整理表 B,以便删除所有重复值,因为我不需要它们。

当数据库很小(少于 700-800k 行)时,这工作正常,但现在数据库超过 1M 行并且这个操作花费了很长时间,以至于它遇到 SQL 运行时错误(300 秒)并且没有'不要走到尽头;

所以问题是我如何管理以更可靠和快速的方式只在我的表中保存非重复数据?

目前我在导入之前过滤我的部分数据,但这还不够。

已经尝试创建一个自定义 SQL 过程来检查每个单独的值是否存在于表中,并且仅在它不存在时才插入,但是逐行逐行进行非常缓慢且效率低下。

欢迎任何建议! :) 提前谢谢你!

python mysql sql data-manipulation
© www.soinside.com 2019 - 2024. All rights reserved.