【问题标题】:How to make record insert operation faster in django with postgres backend如何使用 postgres 后端在 django 中更快地进行记录插入操作
【发布时间】:2011-08-18 12:32:15
【问题描述】:

我构建了一个基于 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 条记录。它太慢了,无法接受。

所以我的问题是:瓶颈在哪里,我怎样才能让它更快?

提前致谢!

【问题讨论】:

标签: django performance postgresql


【解决方案1】:

在 django 端使用原始 sql 和事务:https://docs.djangoproject.com/en/dev/topics/db/sql/ 以及来自 Postgres 的 Copy 命令!

Whats the fastest way to do a bulk insert into Postgres?

【讨论】:

    【解决方案2】:

    我在 siafoo 中找到了一个关于如何将 GEOIP 数据库加载到 postgresSQL 中的完整教程。它写得很好,涵盖了大部分细节。 链接是http://www.siafoo.net/article/53

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 2015-01-29
      • 2020-12-31
      相关资源
      最近更新 更多