시간이 지남에 따라 속도가 느려지는 MySQL 가져오기 성능을 향상시킬 수 있는 방법이 있습니까?
P粉969253139
P粉969253139 2024-01-05 09:41:52
0
1
578

대용량 mysqldump 파일(~700GB)이 있는데 다른 서버에 복원하고 싶습니다. 첫 번째 GB의 경우 가져오기 속도는 약 MB/s로 매우 빠르지만 몇 GB의 데이터 이후에는 속도가 50kb/s에서 200kb/s 사이로 떨어집니다.

mysqldump의 매개변수는 --skip-comments --no-create-info --no-autocommit --quick --extended-insert --insert-ignore --compress이므로 일부 속도가 향상되었습니다.

가져오기를 통해 pv /file.sql | 完成的mysql -u 用户 DB

또한 mysqltuner를 실행하고 일부 설정을 개선했습니다.

궁금합니다: 그렇게 큰 mysqldump가 잠시 후 속도가 느려지는 것이 일반적인가요? 아니면 더 개선할 수 있는 부분이 있나요?

P粉969253139
P粉969253139

모든 응답(1)
P粉201448898

대량의 데이터를 가져올 때는 다음 기능을 비활성화해야 합니다.

  1. 트리거 비활성화
  2. 인덱싱 비활성화
  3. 제약 또는 검사 비활성화
  4. 외래 키 비활성화

삽입할 때마다 데이터베이스는 다른 테이블에 삽입된 레코드의 관계를 확인하기 때문입니다. 테이블이 커질수록 이 프로세스는 느려지기 시작합니다. 각 삽입 중에 데이터베이스는 추가 삽입 작업을 수행하거나 테이블의 인덱스에 삽입 트리거를 실행합니다.

또한 MySQL의 트랜잭션은 약하기 때문에 삽입할 때마다 커밋이 작동하지 않도록 작업해야 하며, 예를 들어 레코드 10000개를 삽입할 때마다 한 번씩 커밋 명령을 사용할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿