数据库大量数据update慢,如何克服?
描述
数据库是postgresql
python3
现在有1700万
数据,最大ID3000万+
id | link | data |
---|---|---|
19001212 | www.somelink.com | some str |
我的任务是爬虫,取出单条数据link
id
段,爬取数据返回给data
.
update table set data = %s where id = %s
所以update
操作需要根据id
查询到数据,并返回。我测试了一下单条数据的更新需要0.1s
.
我的想法
见识少,求教 下面是我的想法
新建数据库
a
。从主数据库取任务,在a
中create
。但是问题是:在主数据中无法识别是否被爬取。因为查询语句select id,link from table where data is null;
尝试新数据库,听说
radis
很快,不知道合不合适。求教
另外,最佳连接数
是多少,之前不懂,做了5-6个连接
。结果更新的数据更少,现在只有两个连接,反而很多。一小时2w数据
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是个好问题,认真回答的话能写不少。不过鉴于题目给出的信息量过少,就不发散了。
首先,每个更新100ms,你有检查过DB的瓶颈在哪里吗?磁盘慢吗?还是内存不够?不知道瓶颈靠瞎猜,很难解决问题。
其次,我想你的ID一定是有索引的对吧,否则应该更慢些。然后一个简单的改进就是,你不是每个更新都是一个Transaction吧,试一试攒个几百上千个update之后一次提交。
然后就是,我猜你有优化过PG的配置吧,如果没有的话,找这方面的资料看一看,试一试。