처음있을 때 많은 양의 데이터를 삽입해야 할 수도 있습니다. 토토 커뮤니티를 채우고 있습니다. 이 섹션에는 몇 가지 제안이 포함되어 있습니다 이 프로세스를 가능한 한 효율적으로 만드는 방법.
AutoCommit을 끄고 끝에 커밋을 수행하십시오. (안에 일반 SQL, 이것은 발행을 의미합니다시작at 시작과커밋끝에. 일부 클라이언트 라이브러리는 등 뒤에서이 작업을 수행 할 수 있습니다. 원할 때 라이브러리가 수행해야합니다. 완료.) 각 삽입이 별도로 커밋되면PostgreSQL많은 일을하고 있습니다 추가 된 각 행에 대해 작동합니다. 추가 혜택 한 번의 트랜잭션의 모든 삽입은 한 줄은 실패한 다음 모든 행의 삽입이 삽입되었습니다. 그 시점까지 롤백 될 것이므로 갇히지 않을 것입니다. 부분적으로로드 된 데이터.
usePostgreSQL : 문서 : 8.2 : 스포츠 토토 사이트모두로드하려면 일련의를 사용하는 대신 한 명령의 행삽입명령. 그만큼copy명령은 크게로드하기 위해 최적화되었습니다 행의 수; 보다 유연하지 않습니다.삽입이지만 오버 헤드가 상당히 덜 발생합니다 큰 토토 커뮤니티로드. 부터COPYis 단일 명령, 당신이 가면 자동 커밋을 비활성화 할 필요가 없습니다. 이 방법을 사용하여 테이블을 채우십시오.
사용할 수없는 경우copy, 도움이 될 수 있습니다 사용하려면PostgreSQL : 문서 : 8.2 : 스포츠 토토 베트맨to 준비된 생성삽입성명서, 그리고 사용execute여러 번 필수의. 이것은 반복적으로 오버 헤드를 피합니다 구문 분석 및 계획삽입.
많은 수의 행을 사용하여COPY사용하는 것보다 거의 항상 빠릅니다삽입준비가 사용되고 여러 삽입이 있습니다 단일 거래로 배치되었습니다.
새로 생성 된 테이블을로드하는 경우 가장 빠른 방법 테이블을 만들고, 대량을 사용하여 테이블의 토토 커뮤니티를로드하는 것입니다COPY, 필요한 색인을 만듭니다 테이블 용. 기존 데이터에 대한 인덱스 생성은 다음과 같습니다 각 행처럼 점진적으로 업데이트하는 것보다 빠릅니다 짐을 실은.
기존에 많은 양의 데이터를 추가하는 경우 테이블, 인덱스를 삭제하고 테이블을로드하는 것은 승리 일 수 있습니다. 그런 다음 색인을 재현하십시오. 물론 데이터베이스 성능 다른 사용자는 시간 동안 부정적인 영향을받을 수 있습니다. 인덱스가 누락되었습니다. 또한 전에 두 번 생각해야합니다 오류 검사가 제공 한 이후 고유 인덱스를 삭제합니다 인덱스가있는 동안 독특한 제약이 손실됩니다. 없어진.
인덱스와 마찬가지로 외국의 주요 제약 조건은 점검"대량"보다 효율적으로 줄보다. 따라서 외국 키를 떨어 뜨리는 것이 유용 할 수 있습니다 제약,로드 토토 커뮤니티 및 제약 조건을 다시 창출합니다. 다시, 토토 커뮤니티로드 속도와 오류 손실 사이에 상충 관계가 있습니다. 제약 조건이 누락 된 상태에서 확인합니다.
일시적으로 증가하는maintenance_work_mem구성 변수 다량의 토토 커뮤니티를로드 할 때 성능 향상으로 이어집니다. 이것은 속도를 높이는 데 도움이 될 것입니다색인 생성명령 및Alter Table Add Foreign Key명령. 그렇지 않습니다 에 대해 많은 일을하십시오COPY자체 조언은 하나 또는 둘 다를 사용할 때만 유용합니다. 위의 기술.
일시적으로 증가하는Checkpoint_segments구성 변수는 큰 토토 커뮤니티로드를 더 빨리 만들 수 있습니다. 많은 양의 토토 커뮤니티를로드하기 때문입니다PostgreSQL원인이 될 것입니다 체크 포인트는 일반 체크 포인트보다 더 자주 발생합니다 주파수 (에 의해 지정됨Checkpoint_Timeout구성 변수). 체크 포인트가 발생할 때마다 모든 더러운 페이지를 플러시해야합니다. 디스크에. 증가함으로써Checkpoint_segments일시적으로 벌크 토토 커뮤니티 중 하중, 필요한 체크 포인트 수는 줄인.
분포를 크게 변경할 때마다 테이블 내 토토 커뮤니티, 실행Analyze강력히 권장됩니다. 이것 대량의 토토 커뮤니티가 많은 양의 토토 커뮤니티를 테이블에 포함시킵니다. 달리기분석(또는진공 분석)는 플래너에 보장합니다 표에 대한 최신 통계. 통계가 없거나 구식 통계에 따르면, 플래너는 그 동안 열악한 결정을 내릴 수 있습니다 쿼리 계획, 모든 테이블에서 성능이 저하됩니다. 부정확하거나 존재하지 않는 통계.
덤프 스크립트에 의해 생성pg_dump자동으로 몇 가지를 적용하지만 위의 지침 중 하나는 아닙니다. a를 새로 고침하려면pg_dump가능한 빨리 덤프하십시오 수동으로 몇 가지 추가 작업을 수행해야합니다. (이 점들을 참조하십시오 적용 중복원덤프, 덤프가 아닙니다생성it. 같은 점 사용시 적용PG_RESTOREto A에서로드pg_dump아카이브 파일.)
기본적으로pg_dump용도COPY, 그리고 그것이 생성 될 때 a 스키마 및 데이터 덤프 완전한 데이터를로드하는 것이 신중합니다 인덱스와 외국 키를 만들기 전에. 이 경우 먼저 몇 가지 지침이 자동으로 처리됩니다. 무엇인가요 당신이 할 수있는 것은 적절한 것을 설정하는 것입니다 (즉, 더 큽니다. 정상)maintenance_work_memandCheckpoint_segments덤프를로드하기 전에 스크립트, 실행분석나중에.
토토 커뮤니티 전용 덤프가 여전히 사용됩니다COPY그러나 인덱스를 삭제하거나 재현하지는 않습니다. 그리고 그것은 일반적으로 외국 열쇠를 만지지 않습니다.[1]토토 커뮤니티 전용 덤프를로드 할 때 인덱스와 외국 키를 삭제하고 재현하는 데 도움이됩니다. 당신은 이러한 기술을 사용하고 싶습니다. 여전히 유용합니다Checkpoint_segments로드하는 동안 토토 커뮤니티이지만 증가하지 마십시오maintenance_work_mem; 오히려, 당신은 그렇게 할 것입니다 그 후에 인덱스와 외국 키를 수동으로 재현하는 동안. 그리고 잊지 마세요분석언제 당신은 끝났습니다.
[1] |
사용하여 외래 키를 비활성화하는 효과를 얻을 수 있습니다. 그만큼-disable-triggers옵션 - 그러나 연기가 아니라 제거한다는 것을 깨달았습니다. 외국 키 검증이므로 나쁜 삽입이 가능합니다. 사용하는 경우 데이터. |