>데이터 베이스 >MySQL 튜토리얼 >더 빠른 가져오기를 위해 MySQL 로드 데이터 파일을 최적화하는 방법은 무엇입니까?

더 빠른 가져오기를 위해 MySQL 로드 데이터 파일을 최적화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-07 17:34:03689검색

How to Optimize MySQL Load Data Infile for Faster Imports?

빠른 가져오기를 위한 MySQL 로드 데이터 입력 파일 최적화

"데이터 입력 파일 로드"를 사용하여 대용량 데이터 세트를 MySQL로 가져올 때 성능 병목 현상이 자주 발생합니다. . 이 문서에서는 특히 여러 키가 있는 대규모 InnoDB 테이블의 경우 가져오기 프로세스를 가속화하는 방법을 살펴봅니다.

가져오기 가속화

가져오기 속도를 최적화하려면 다음을 고려하세요.

  1. 기본 키 순서: 대상 테이블의 기본 키와 동일한 순서로 CSV 파일을 정렬합니다. 이는 InnoDB의 클러스터형 기본 키를 활용하여 가져오기 프로세스를 최적화합니다.
  2. 잘림 및 자동 커밋: 데이터를 로드하기 전에 테이블을 자르고 자동 커밋을 비활성화하여 성능을 향상합니다.
  3. 데이터베이스 설정 최적화: 오버헤드를 줄이기 위해 고유 검사, 외래 키 검사 및 바이너리 로깅을 일시적으로 비활성화합니다.
  4. 청크 로드: CSV 파일을 더 작은 청크로 분할하여 메모리 요구 사항을 최소화하고 잠금 경합을 줄입니다.

최적화된 가져오기 구문의 예:

truncate <table>;

set autocommit = 0;

load data infile <path> into table <table>...

commit;

set autocommit = 1;
set unique_checks = 1;
set foreign_key_checks = 1;
set sql_log_bin=1;

다시 시작하지 않고 쿼리 종료

To MySQL을 다시 시작하지 않고 느리게 실행되는 쿼리를 종료하려면 다음 명령을 사용하십시오.

kill <process_id>;

이 명령은 show processlist 명령에서 얻을 수 있는 프로세스 ID로 지정된 프로세스를 종료합니다.

위 내용은 더 빠른 가져오기를 위해 MySQL 로드 데이터 파일을 최적화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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