我构建了一个基于django的地理定位服务,该服务通过IP地址确定用户的位置。我需要做的第一件事是将ip数据插入我的数据库。
我使用以下代码(简化)将记录插入我的数据库:
for ipLoc in ipSeeker.ipLocationList:
placeName =ipLoc.country + ipLoc.area
IPLog.objects.create(
startIP = int_to_dqn(ipLoc.startIP),
endIP = int_to_dqn(ipLoc.endIP),
place = placeName
).save()
ipLocationList有大约400k的ip记录。我的脚本只在20分钟内插入20k记录。它太慢了,无法接受。
所以我的问题是:瓶颈在哪里?我怎样才能让它更快?
提前致谢!
答案 0 :(得分:1)
使用django-side的原始sql和事务:https://docs.djangoproject.com/en/dev/topics/db/sql/以及Postgres的Copy命令!
答案 1 :(得分:1)
我找到了一个关于如何在siafu中将GEOIP数据库加载到postgresQL的完整教程。它编写得很好,涵盖了大部分细节。 链接为http://www.siafoo.net/article/53