빠른 데이터 가져오기를 위해 MySQL LOAD DATA INFILE 최적화
LOAD DATA INFILE을 사용하여 대용량 데이터 세트를 MySQL로 가져오는 데는 시간이 많이 걸릴 수 있습니다. 특히 다음과 같은 경우에는 더욱 그렇습니다. 가져온 후 인덱스를 생성합니다. 이 기사에서는 프로세스를 가속화하고 데이터베이스에서 계속 실행되는 종료된 쿼리 문제를 해결하는 다양한 기술을 살펴봅니다.
LOAD DATA INFILE 가속화
InnoDB 테이블의 경우 다음을 고려하세요. 다음 최적화 팁:
-
CSV 파일을 기본 키 순서로 정렬하세요. InnoDB는 클러스터된 기본 키를 사용하므로 파일을 정렬하면 로딩 속도가 크게 빨라집니다.
-
로드하기 전에 테이블 자르기: 읽고 쓰는 데 소요되는 시간을 최소화하려면 기존 데이터를 제거하세요.
-
자동 커밋 비활성화: 트랜잭션 커밋을 지연하려면 autocommit=0을 설정하세요. 전체 가져오기가 끝날 때까지 커밋 수를 줄이고 성능을 향상시킵니다.
-
검사 비활성화: set Unique_checks=0 및 foreign_key_checks=0을 사용하여 고유 및 외래 키 검사를 일시적으로 비활성화합니다.
-
바이너리 로깅 비활성화: sql_log_bin=0으로 설정하여 바이너리 로깅을 일시 중단하여 로그 쓰기와 관련된 오버헤드를 제거합니다.
-
CSV 파일을 청크로 분할: 빠른 로딩을 위해 CSV 파일을 더 작은 세그먼트로 분할합니다.
쿼리 종료
MySQL을 다시 시작하지 않고 느린 쿼리를 종료하려면 다음을 시도하십시오.
-
KILL 명령: 특정 쿼리를 종료하려면 KILL {query_id} 명령을 실행합니다.
-
클라이언트 연결 닫기: 쿼리가 실행되는 터미널 창을 강제로 닫습니다. 실행되면 실행 중인 쿼리도 중지됩니다. 그러나 이로 인해 데이터 손상이나 불일치가 발생할 수 있습니다.
이러한 최적화를 적용하면 LOAD DATA INFILE의 성능을 크게 향상하고 데이터 가져오기 프로세스를 간소화할 수 있습니다.
위 내용은 더 빠른 데이터 가져오기를 위해 MySQL LOAD DATA INFILE을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!