sql >> Database >  >> RDS >> PostgreSQL

Afstemmen van Postgresql-prestaties en geheugengebruik in een Python-workflow

Mijn oplossing is het snijden van putback met een eenvoudige functie zoals voorgesteld hier :

def chunk(l, n):
    n = max(1, n)
    return [l[i:i + n] for i in range(0, len(l), n)]

en dan

for chunk in chunk(putback, 250000):
    curs.execute("UPDATE table1
                  SET col3 = p.result
                  FROM unnest(%s) p(sid INT, result JSONB)
                  WHERE sid = p.sid", (chunk,))

Dit werkt, d.w.z. houdt de geheugenvoetafdruk onder controle, maar is niet erg elegant en langzamer dan alle gegevens in één keer dumpen, zoals ik gewoonlijk doe.




  1. SQLite-gegevens naar een RecyclerView

  2. Meerdere IF-statements op MYSQL

  3. Hoe relaties te creëren in MySQL

  4. Wijzig de waarde van de tweede selectie bij de eerste selectie