sql >> Databasteknik >  >> RDS >> PostgreSQL

psycopg2 COPY med cursor.copy_from() fryser med stora ingångar

Detta är bara en lösning, men du kan bara överföra något till psql. Jag använder det här receptet ibland när jag är för lat för att slå ut psycopg2

import subprocess
def psql_copy_from(filename, tablename, columns = None):
    """Warning, this does not properly quote things"""
    coltxt = ' (%s)' % ', '.join(columns) if columns else ''
    with open(filename) as f:
        subprocess.check_call([
            'psql',
            '-c', 'COPY %s%s FROM STDIN' % (tablename, coltxt),
            '--set=ON_ERROR_STOP=true', # to be safe
            # add your connection args here
        ], stdin=f)

När det gäller din låsning, använder du flera trådar eller något liknande?

Loggar din postgres något som en stängd anslutning eller ett dödläge? Kan du se diskaktivitet efter att den låser sig?



  1. MySQL- Trigger uppdatering av rankning

  2. MYSQL lagrad procedur, fall

  3. Hur kontrollerar jag om ett värde är ett heltal i MySQL?

  4. SQLite-uppdatering