sql >> Databasteknik >  >> RDS >> PostgreSQL

Justera Postgresql-prestanda och minnesanvändning i ett python-arbetsflöde

Min lösning är att dela putback med en enkel funktion som föreslagits här :

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

och sedan

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,))

Detta fungerar, d.v.s. håller minnesfotavtrycket i schack, men är inte särskilt elegant och långsammare än att dumpa all data på en gång, som jag brukar.




  1. oinitierad konstant Mysql2::Client::SECURE_CONNECTION

  2. går det snabbare att läsa från MySQL eller går det snabbare att läsa från en fil?

  3. Är det möjligt att namnge SQL-resultatkolumner från rader i en annan tabell? (Postgres)

  4. Hur kör man en uppsättning SQL-frågor från en fil i PHP?