대용량 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粉2014488982024-01-06 08:18:50
대량의 데이터를 가져올 때는 다음 기능을 비활성화해야 합니다.
삽입할 때마다 데이터베이스는 다른 테이블에 삽입된 레코드의 관계를 확인하기 때문입니다. 테이블이 커질수록 이 프로세스는 느려지기 시작합니다. 각 삽입 중에 데이터베이스는 추가 삽입 작업을 수행하거나 테이블의 인덱스에 삽입 트리거를 실행합니다.
또한 MySQL의 트랜잭션은 약하기 때문에 삽입할 때마다 커밋이 작동하지 않도록 작업해야 하며, 예를 들어 레코드 10000개를 삽입할 때마다 한 번씩 커밋 명령을 사용할 수 있습니다.