>백엔드 개발 >파이썬 튜토리얼 >psycopg2를 사용하여 데이터베이스에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

psycopg2를 사용하여 데이터베이스에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-26 04:09:09973검색

How Can I Efficiently Insert Multiple Rows into a Database Using psycopg2?

psycopg2를 사용하여 여러 행을 효율적으로 삽입

데이터베이스에 대량 삽입을 처리할 때 성능을 최적화하는 것이 필수적입니다. psycopg2는 이 작업에 대해executemany 메소드를 제공하지만 약간 더 간단하고 더 빠른 접근 방식도 존재합니다.

이 접근 방식에는 mogrify() 함수를 활용하고 생성된 SQL 문을 단일 쿼리로 연결하는 작업이 포함됩니다. 삽입할 데이터가 포함된 튜플을 생성해야 합니다. 예를 들어 보겠습니다.

args = [(1, 2), (3, 4), (5, 6)]
args_str = ','.join(cursor.mogrify("(%s,%s)", (x, )) for x in args)
cursor.execute("INSERT INTO t (a, b) VALUES " + args_str)

이 방법은 특히 대규모 데이터 배치의 경우 성능을 크게 향상시키는 것으로 경험적으로 나타났습니다. 한 경우에, 이 방법을 사용하면 2000개 행을 삽입하는 데 단 10초가 소요되는데, 이는 Execmany를 사용하는 데 2분이 소요되는 것과 비교됩니다.

이 기술을 활용하면 개발자는 psycopg2를 사용하여 더 빠른 대량 삽입을 달성할 수 있으므로 데이터베이스 쓰기 작업을 최적화할 수 있습니다.

위 내용은 psycopg2를 사용하여 데이터베이스에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.