it-swarm-ko.tech

MySQL 덤프 및 가져 오기 속도 향상

MySQL 덤프 및 가져 오기 속도를 높이기위한 문서화 된 기술이 있습니까?

여기에는 램 디스크 등을 사용한 my.cnf 설정이 포함됩니다.

잠재적 인 속도 향상을 보여주는 벤치 마크와 함께 문서화 된 기술 만 찾습니다.

51
deadprogrammer

http://www.maatkit.org/ 에는 mk-parallel-dump 및 mk-parallel-restore가 있습니다

멀티 스레드 mysqldump를 원한다면 더 이상 원하지 않습니다. 이 도구는 MySQL 테이블을 병렬로 덤프합니다. mysqldump에 대한 래퍼 (기본 동작이 적절 함) 또는 SELECT INTO OUTFILE 주변의 래퍼 역할을 할 수있는 훨씬 똑똑한 mysqldump입니다. 속도가 중요한 큰 데이터 크기의 고성능 응용 프로그램을 위해 설계되었습니다. 여러 CPU와 디스크를 활용하여 데이터를 훨씬 빠르게 덤프합니다.

Mysqldump에는 덤프를 가져 오는 동안 인덱스를 작성하지 않고 완료시 일괄 처리하는 등 다양한 잠재적 옵션이 있습니다.

15
Alister Bulman
  1. 고성능 MySQL의 복사본을 얻습니다. 좋은 책.
  2. 덤프의 확장 인서트
  3. --tab 형식으로 덤프하여 mysql <dumpfile보다 빠른 mysqlimport를 사용할 수 있습니다.
  4. 각 테이블 당 하나씩 여러 스레드로 가져옵니다.
  5. 가능하면 다른 데이터베이스 엔진을 사용하십시오. innodb와 같이 트랜잭션이 많은 엔진으로 가져 오는 것은 상당히 느립니다. MyISAM과 같은 비 트랜잭션 엔진에 삽입하는 것이 훨씬 빠릅니다.
  6. Maakit 툴킷에서 테이블 비교 스크립트를보고 테이블을 덤프하고 가져 오는 대신 테이블을 업데이트 할 수 있는지 확인하십시오. 그러나 아마도 백업/복원에 대해 이야기하고있을 것입니다.
24
JBB

InnoDB로 가져 오는 경우 가장 효과적인 방법은

innodb_flush_log_at_trx_commit = 2

가져 오기가 실행되는 동안 my.cnf ACID가 필요한 경우 1로 되돌릴 수 있습니다.

13

귀하의 질문은 병목 현상의 위치에 달려 있다고 생각합니다.

  • 네트워크에 병목 현상이있는 경우 -C/--compress 플래그를 mysqldump로 볼 수도 있습니다.
  • 컴퓨터에 메모리가 부족한 경우 (즉, 스와핑을 시작하면) 더 많은 메모리를 구입해야합니다.

또한 mysqldump (및 MyIsam을 사용하는 경우 --quick)에 대한 --disable-keys 플래그를 살펴보십시오.

5
Ztyx

덤프에서 확장 인서트를 사용하면 가져 오기 속도가 빨라집니다.

4
che

외래 키 검사를 끄고 자동 커밋을 켭니다.

4
longneck

MyIsam 테이블 만있는 경우 mysqlhotcopy 대신 사용할 수도 있습니다.

1
Ztyx