2011-08-18 8 views
0

我構建了一個基於django的地理定位服務,它通過IP地址確定用戶的位置。我需要做的第一件事是將IP數據插入到我的數據庫中。如何在django中使用postgres後端更快地創建記錄插入操作

我用下面的代碼(簡化)將記錄插入到我的數據庫:

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有大約40萬個的IP記錄。而且我的腳本只能在20分鐘內插入20k條記錄。它太慢了,不能被接受。

所以我的問題是:哪裏是瓶頸,我怎麼能讓它更快?

在此先感謝!

+0

請參閱我的回答本頁:http://stackoverflow.com/questions/7019831/bulk-batch-update-upsert-in-postgresql/7020219#7020219。 – atrain

回答

1

我發現如何GEOIP數據庫裝載到PostgreSQL的在siafoo一個完整的教程。它寫得很好,涵蓋了大部分細節。 鏈接是http://www.siafoo.net/article/53

相關問題