数据库大量数据update慢,如何克服?

发布于 2022-09-04 05:20:58 字数 993 浏览 14 评论 0

描述

数据库是postgresql python3

现在有1700万数据,最大ID3000万+

idlinkdata
19001212www.somelink.comsome str

我的任务是爬虫,取出单条数据link id段,爬取数据返回给data.

update table set data = %s where id = %s
所以update操作需要根据id查询到数据,并返回。我测试了一下单条数据的更新需要0.1s.

我的想法

见识少,求教 下面是我的想法

  • 新建数据库a。从主数据库取任务,在acreate。但是问题是:在主数据中无法识别是否被爬取。因为查询语句select id,link from table where data is null;

  • 尝试新数据库,听说radis很快,不知道合不合适。求教

另外,最佳连接数是多少,之前不懂,做了5-6个连接。结果更新的数据更少,现在只有两个连接,反而很多。一小时2w数据

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏璃陌 2022-09-11 05:20:58

这是个好问题,认真回答的话能写不少。不过鉴于题目给出的信息量过少,就不发散了。

首先,每个更新100ms,你有检查过DB的瓶颈在哪里吗?磁盘慢吗?还是内存不够?不知道瓶颈靠瞎猜,很难解决问题。

其次,我想你的ID一定是有索引的对吧,否则应该更慢些。然后一个简单的改进就是,你不是每个更新都是一个Transaction吧,试一试攒个几百上千个update之后一次提交。

然后就是,我猜你有优化过PG的配置吧,如果没有的话,找这方面的资料看一看,试一试。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文