>데이터 베이스 >MySQL 튜토리얼 >더 빠른 데이터베이스 채우기를 위해 PostgreSQL에서 대량 삽입을 어떻게 최적화할 수 있습니까?

더 빠른 데이터베이스 채우기를 위해 PostgreSQL에서 대량 삽입을 어떻게 최적화할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-16 15:15:09442검색

How Can I Optimize Bulk Inserts in PostgreSQL for Faster Database Population?

대량 삽입으로 Postgres 데이터베이스 채우기 가속화

대규모 데이터 세트로 Postgres 데이터베이스를 채우려면 효율적인 방법이 필요합니다. 대량 작업의 경우 개별 INSERT 문이 느립니다. Postgres는 COPY 명령

이라는 뛰어난 솔루션을 제공합니다.

COPY 명령은 훨씬 더 빠른 삽입을 위해 표준 쿼리 파서를 우회하여 파일이나 표준 입력의 데이터를 테이블로 직접 로드합니다.

대량 데이터 로드를 위한 COPY 명령 사용:

  1. 데이터가 포함된 텍스트 파일을 준비하세요.

  2. 다음 구문을 사용하여 Postgres 터미널에서 COPY 명령을 실행합니다.

    <code class="language-sql">COPY table_name (column1, column2, ...) FROM '/path/to/data.txt' DELIMITER ',' CSV HEADER;</code>
  3. 자리 표시자를 바꾸세요. table_name은 테이블 이름으로, /path/to/data.txt은 파일의 절대 경로로

  4. 데이터 구조에 따라 DELIMITERCSV HEADER를 조정하세요.

추가 성능 향상:

COPY 외에도 이러한 전략은 대량 삽입을 더욱 최적화합니다.

  • 제약 조건을 일시적으로 비활성화합니다. 로드하기 전에 인덱스와 외래 키 제약 조건을 삭제합니다. 나중에 다시 활성화하십시오. 이로 인해 오버헤드가 크게 줄어듭니다.
  • Postgres 설정 최적화: work_memmaintenance_work_mem를 조정하여 가져오기 프로세스에 충분한 메모리를 제공합니다.
  • 병렬 처리: 데이터를 여러 파일로 나누고 병렬 로딩을 위해 동시 COPY 명령을 사용합니다. 이는 최대 속도를 위해 멀티 코어 프로세서를 활용합니다.

위 내용은 더 빠른 데이터베이스 채우기를 위해 PostgreSQL에서 대량 삽입을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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