Mariadb - 확장된 삽입 실행 시간이 점차적으로 증가하고 있습니다.
저는 6억 5천만 개의 레코드를 한 테이블에 넣어야 합니다.확장 삽입 및 LOAD DATA LOCAL INFILE 방법을 시도해 보았습니다.
확장 삽입 결과:
저는 데이터를 분할했고 모든 확장 인서트에는 1250000개가 포함되어 있습니다.모든 배치가 점차 실행 시간이 늘어나는 등의 문제에 직면해 있습니다.
Batch 1 completed in 40s
Batch 2 completed in 50s
Batch 3 completed in 60s
Batch 4 completed in 80s
Batch 5 completed in 100s
완성하는 데 15-20시간이 걸릴 것입니다.
데이터 로컬 파일 결과 로드
CSV 파일 크기가 40G인데, 500개로 나누었습니다.그 다음에 Mysql에 실었습니다.또한 동일한 문제에 직면해 있습니다. 파일 로드 시마다 실행 시간이 늘어납니다.
참고용 테이블 구조:
예상되는 동작일 경우 데이터를 빠르게 가져올 수 있는 다른 방법은 없습니까?
데이터를 기준으로 정렬합니다.PRIMARY KEY
. MySQL로 정렬하는 것보다 정렬 명령으로 40GB 파일을 정렬하는 것이 더 빠를 것 같습니다.
세트innodb_buffer_pool_size
사용 가능한 RAM의 약 70%에 도달할 수 있습니다.램을 얼마나 가지고 있습니까?
가지세요PRIMARY KEY
이미 확정된
보조 인덱스가 없습니다.FOREIGN KEYs
또는 트리거(Triggers.나중에 추가합니다.네, 시간이 걸립니다.
이 모든 인덱스가 정말로 필요한지 확인합니다.
10바이트보다 작은 것을 선택하면 데이터를 약간 줄일 수 있습니다.DECIMAL(20,6)
.
언급URL : https://stackoverflow.com/questions/68253460/mariadb-every-batch-of-extended-insert-execution-time-is-increasing-gradually
'programing' 카테고리의 다른 글
클랑이 더 많이 사용되지 않는 이유는 무엇입니까? (0) | 2023.10.25 |
---|---|
printf는 char 배열에서 16진수 인쇄에 'FFFFFF'를 추가합니다. (0) | 2023.10.25 |
CDN 사용 대 NPM에서 라이브러리 설치 (0) | 2023.10.25 |
브라우저 캐시를 프로그래밍적으로 비우는 방법은? (0) | 2023.10.25 |
파워쉘 라운드 & 포맷 플로트를 최대 2자리수까지? (0) | 2023.10.20 |