sql >> Database teknologi >  >> RDS >> PostgreSQL

psycopg2 COPY ved hjælp af cursor.copy_from() fryser med store input

Dette er kun en løsning, men du kan bare overføre noget til psql. Jeg bruger denne opskrift nogle gange, når jeg er for doven til at sprænge 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)

Hvad angår din låsning, bruger du så flere tråde eller noget lignende?

Logger din postgres noget, såsom en lukket forbindelse eller en dødvande? Kan du se diskaktivitet, efter at den er låst?



  1. Enhver måde at opnå fuldtekstlignende søgning på InnoDB

  2. Hvordan kan jeg lave en asynkron database i JavaFX

  3. Vælg TOP X (eller nederste) procent for numeriske værdier i MySQL

  4. PHP-funktion til at undslippe MySQL regexp-syntaks