2016-04-05 42 views
1

Yalnızca 1 GB'lık bellek ve 1 TB'lık sabit disk alanım olduğunu varsayalım.Psycopg2 cursor.execute jeneratöre geri dön

Bu benim kodum ve bir postgres veritabanı kullanıyorum. Bu durum için

import psycopg2 

try: 
    db = psycopg2.connect("database parameters") 
    conn = db.cursor() 
    conn.execute(query) 

    #At this point, i am running 
    for row in conn: 

bunun o kadar komuta varsaymak güvenlidir i çevrimiçi kesin bir yanıt bulmak gibi olamaz ve ben çökmesine sistemi göze alamaz olarak benim çevreye denemek olamaz gibi bir jeneratör sanırım.

Ben 100 aşan ben python 2.7 ve psycopg2 kitaplığı kullanıyorum

GB

verileri döndürmek için bu sorguyu bekliyorum

+0

Neden yalnızca bir sonuç döndüren bir sorgu yazmayın ve [bu yanıt] 'a göre '(isinstance (gen, types.GeneratorType)' seçeneğini deneyin (http://stackoverflow.com/questions/6416538/how-to-check -if-bir nesne-bir-jeneratör-nesne-in-python) 'conn.execute()' bir jeneratör döndürürse, bu size hemen söylemelisiniz. –

cevap

3

o zaman sizin örnekte yapıyoruz anonim imleç, kullanırsanız tüm sorgu sonucu hafızada okunacaktır.

Eğer bir named cursor kullanırsanız, o zaman bu veri üzerinde döngüler halinde sunucudan okur.

İlgili konular