대규모 데이터 세트를 MySQL로 빠르게 대량 가져오기

대규모 데이터 세트를 MySQL로 빠르게 대량 가져오기

MySQL로 가져와야 하는 상당히 큰 데이터 세트가 있습니다. 이 작업을 반복해서 수행해야 하므로 최대한 효율적으로 수행하고 싶습니다. 이에 대한 트릭이 있습니까? 확장된 INSERT 문보다 더 효율적인 방법이 있습니까?

댓글의 질문을 해결하기 위해 원래 형식은 XML이지만 이미 CSV 형식으로 변환하는 변환기가 있습니다. 저는 MySQL 5.1.x를 사용하고 있으며 대상 데이터베이스는 InnoDB입니다. 데이터 사이에는 관계가 있지만 제약 조건이 없으며 대부분의 경우 데이터가 이를 적용할 만큼 깨끗하지 않습니다.

답변1

노력하다mysql가져오기CSV 파일에서 직접 가져올 수 있습니다.

답변2

나는 읽을 것이다mysql매뉴얼에서 INSERT AFTER 에 대해 생각하고 있었지만 LOAD DATA INFILE 이 "20배 더 빠르다"는 것이 흥미로워 보입니다....

답변3

라는 오픈 소스 ETL 도구가 있습니다.펜타호 데이터 통합mysql 대량 로드 옵션이 있습니다(디자인 보기의 실험 폴더 아래). 또한 CSV 입력 및 테이블 출력 단계를 사용하여 플랫폼에 구애받지 않는 방식으로 데이터를 빠르게 로드할 수도 있습니다. 데이터를 로드하기 전에 데이터 처리를 수행해야 하는 경우 이 프로그램 내에서 해당 논리를 인코딩할 수 있습니다.

답변4

대량의 "삽입 ..."도 너무 오래 걸리지 않습니다. 200MB의 새로운 JIRA 데이터베이스 내보내기를 수행하고 약 30초 만에 새 데이터베이스에 로드했습니다.

관련 정보