>  기사  >  데이터 베이스  >  더 빠른 데이터 가져오기를 위해 MySQL LOAD DATA INFILE을 어떻게 최적화할 수 있습니까?

더 빠른 데이터 가져오기를 위해 MySQL LOAD DATA INFILE을 어떻게 최적화할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-08 04:59:02872검색

How Can I Optimize MySQL LOAD DATA INFILE for Faster Data Imports?

빠른 데이터 가져오기를 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.