描述
数据库是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数据
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
这是个好问题,认真回答的话能写不少。不过鉴于题目给出的信息量过少,就不发散了。
首先,每个更新100ms,你有检查过DB的瓶颈在哪里吗?磁盘慢吗?还是内存不够?不知道瓶颈靠瞎猜,很难解决问题。
其次,我想你的ID一定是有索引的对吧,否则应该更慢些。然后一个简单的改进就是,你不是每个更新都是一个Transaction吧,试一试攒个几百上千个update之后一次提交。
然后就是,我猜你有优化过PG的配置吧,如果没有的话,找这方面的资料看一看,试一试。
添加回答
举报
0/150
提交
取消