처음에는 많은 양의 데이터를 삽입해야 할 수도 있습니다. 데이터베이스 채우기. 이 섹션에는 다음에 대한 몇 가지 제안 사항이 포함되어 있습니다. 이 프로세스를 최대한 효율적으로 만드는 방법.
자동 커밋을 끄고 마지막에 커밋 하나만 수행하세요. (에서 일반 SQL, 이는 발행을 의미함시작에 시작과커밋마지막에. 일부 클라이언트 라이브러리는 뒤에서 이 작업을 수행할 수 있습니다. 당신이 원할 때 도서관이 이를 수행하는지 확인해야 합니다. 완료.) 각 삽입이 별도로 커밋되도록 허용하는 경우,PostgreSQL많은 일을 하고 있습니다 추가된 각 행에 대해 작업합니다. 추가 혜택 하나의 트랜잭션에서 모든 삽입은 다음과 같습니다. 한 행이 실패하면 모든 행이 삽입됩니다. 그 시점까지는 롤백되므로 계속해서 멈추지 않을 것입니다. 부분적으로 데이터가 로드되었습니다.
사용사설 토토 : 문서 : 8.1 : Copy모두 로드하려면 일련의를 사용하는 대신 하나의 명령으로 행삽입명령.복사명령은 대용량 로드에 최적화되어 있습니다. 행 수; 다음보다 유연성이 떨어집니다.삽입, 그러나 오버헤드가 훨씬 적습니다. 대용량 스포츠 토토 사이트 로드용. 이후복사은 단일 명령을 사용하는 경우 자동 커밋을 비활성화할 필요가 없습니다. 테이블을 채우려면 이 방법을 사용하세요.
사용할 수 없는 경우복사도움이 될 것 같아요 사용하다PostgreSQL : 문서 : 8.1 : 토토에 준비된 생성하기삽입성명, 그런 다음 사용실행몇번이나 필수. 이렇게 하면 반복적으로 발생하는 일부 오버헤드가 방지됩니다. 분석 및 계획삽입.
다음을 사용하여 많은 수의 행을 로드한다는 점에 유의하세요.복사사용하는 것보다 거의 항상 빠릅니다.삽입, 비록준비이 사용되며 여러 삽입이 단일 트랜잭션으로 일괄 처리됩니다.
새로 생성된 테이블을 로드하는 경우 가장 빠른 방법은 테이블을 생성하고 다음을 사용하여 테이블의 데이터를 대량 로드하는 것입니다.복사, 그런 다음 필요한 색인을 만듭니다. 테이블을 위해. 기존 데이터에 대한 인덱스를 생성하는 것은 각 행이 바뀔 때마다 점진적으로 업데이트하는 것보다 빠릅니다. 로드되었습니다.
기존 파일에 많은 양의 데이터를 추가하는 경우 테이블을 삭제하고, 테이블을 로드하고, 그런 다음 인덱스를 다시 생성하십시오. 물론 데이터베이스 성능도 다른 사용자에게는 해당 기간 동안 부정적인 영향을 미칠 수 있습니다. 색인이 누락되었습니다. 또한 그 전에 두 번 생각해야 합니다 오류 검사가 제공되므로 고유 인덱스를 삭제합니다. 인덱스가 있는 동안 고유 제약 조건이 손실됩니다. 누락되었습니다.
색인과 마찬가지로 외래 키 제약 조건은 다음과 같습니다. 확인됨"대량"보다 효율적으로 행 단위보다. 따라서 외래 키를 삭제하는 것이 유용할 수 있습니다. 제약 조건을 적용하고, 스포츠 토토 사이트를 로드하고, 제약 조건을 다시 생성합니다. 다시, 스포츠 토토 사이트 로드 속도와 오류 손실 사이에는 균형이 있습니다. 제약 조건이 누락된 동안 확인합니다.
일시적으로 증가maintenance_work_mem대량의 스포츠 토토 사이트를 로드할 때 구성 변수가 발생할 수 있습니다. 성능 향상으로 이어집니다. 속도를 높이는 데 도움이 됩니다.색인 생성명령 및테이블 변경 외래 키 추가명령. 그렇지 않습니다 많은 일을 해라복사자체이므로 이것은 조언은 다음 중 하나 또는 둘 다를 사용할 때만 유용합니다. 위의 기술.
일시적으로 증가checkpoint_segments구성 변수를 사용하면 대용량 데이터 로드를 더 빠르게 할 수도 있습니다. 이는 많은 양의 데이터를 로드하기 때문입니다.PostgreSQL원인이 될 것입니다 체크포인트는 일반 체크포인트보다 더 자주 발생합니다. 빈도(다음으로 지정됨checkpoint_timeout구성 변수). 체크포인트가 발생할 때마다 모든 더티 페이지를 플러시해야 합니다. 디스크에. 증가시켜서checkpoint_segments대량 데이터 중 일시적으로 로드, 필요한 체크포인트 수는 다음과 같습니다. 감소했습니다.
귀하가 분포를 크게 변경한 경우 테이블 내의 데이터, 실행 중분석강력히 권장됩니다. 이 테이블에 대량의 데이터를 대량 로드하는 작업이 포함됩니다. 실행 중분석(또는진공 분석)는 플래너가 테이블에 대한 최신 통계입니다. 통계가 없거나 쓸모없는 통계로 인해 기획자는 작업 중에 잘못된 결정을 내릴 수 있습니다. 쿼리 계획으로 인해 다음이 포함된 모든 테이블의 성능이 저하됩니다. 부정확하거나 존재하지 않는 통계입니다.
다음에 의해 생성된 덤프 스크립트pg_dump자동으로 여러 개를 적용하지만 위의 지침 중 전부는 아닙니다. 다시 로드하려면pg_dump가능한 한 빨리 덤프하세요. 몇 가지 추가 작업을 수동으로 수행해야 합니다. (이 점을 참고하세요. 동안 신청하세요복원 중덤프, 동안은 아님생성그것. 같은 점 사용시 적용pg_restore에 a에서 로드pg_dump아카이브 파일.)
기본적으로,pg_dump사용복사, 그리고 생성 중일 때 완전한 스키마 및 데이터 덤프, 신중하게 데이터 로드 인덱스와 외래 키를 생성하기 전에. 따라서 이 경우에는 처음에는 몇 가지 지침이 자동으로 처리됩니다. 무엇입니까? 당신이 해야 할 일은 적절하게 설정하는 것입니다(즉, 일반) 값은maintenance_work_mem그리고checkpoint_segments덤프를 로드하기 전 스크립트를 실행한 다음 실행합니다.분석나중에.
데이터 전용 덤프는 계속 사용됩니다.복사, 하지만 인덱스를 삭제하거나 다시 생성하지는 않습니다. 일반적으로 외래 키를 건드리지 않습니다.[1]따라서 데이터 전용 덤프를 로드할 때, 다음과 같은 경우 인덱스와 외래 키를 삭제하고 다시 생성하는 것은 사용자의 몫입니다. 당신은 그 기술을 사용하고 싶습니다. 늘리는 것이 여전히 유용합니다.checkpoint_segments로드하는 동안 스포츠 토토 사이트를 늘리되 귀찮게 늘리지는 마세요.maintenance_work_mem; 오히려 넌 그렇게 할 거야 나중에 인덱스와 외래 키를 수동으로 다시 생성하는 동안. 그리고 잊지 마세요분석때 넌 끝났어.
| [1] | 
       다음을 사용하여 외래 키를 비활성화하는 효과를 얻을 수 있습니다.-X 비활성화 트리거옵션 — 하지만 단순히 연기하는 것이 아니라 제거한다는 사실을 인식하세요. 외래 키 유효성 검사를 수행하므로 잘못된 삽입이 가능합니다. 사용하면 데이터가 됩니다.  |