문제

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

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

문서화된 기술만 찾고, 잠재적인 속도 향상을 보여주는 벤치마크를 사용하는 것이 좋습니다.

도움이 되었습니까?

해결책

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

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

mysqldump에는 덤프를 가져오는 동안 인덱스를 만들지 않고 대신 완료 시 한꺼번에 인덱스를 수행하는 등의 다양한 잠재적 옵션이 있습니다.

다른 팁

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

InnoDB로 가져오는 경우 가장 효과적인 방법은 다음과 같습니다.

innodb_flush_log_at_trx_commit = 2

당신의 my.cnf, 가져오기가 실행되는 동안 일시적으로.다시 넣을 수 있습니다. 1 ACID가 필요한 경우.

귀하의 질문은 병목 현상이 어디에 있는지에 따라 달라집니다.

  • 네트워크에 병목 현상이 발생하는 경우 다음을 살펴볼 수도 있습니다. -C/--compress 플래그를 지정하다 mysqldump.
  • 컴퓨터에 메모리가 부족한 경우(예:교환이 시작됩니다) 메모리를 더 구입해야 합니다.

또한, 다음을 살펴보세요. --quick 플래그 mysqldump (그리고 --disable-keys MyIsam을 사용하는 경우).

덤프에 확장 삽입을 사용하면 가져오기가 더 빨라집니다.

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

mysqlhotcopy MyIsam 테이블만 있는 경우에도 대안이 될 수 있습니다.

또 다른 대안은 http://www.mydumper.org - mysqldump보다 3~10배 빠르고 MyISAM, InnoDB 및 Drizzle을 모두 처리할 수 있는 멀티 스레드 mysql 백업/복원 http://vbtechsupport.com/1695/

인덱스를 너무 많이 사용하지 않고, 쿼리 캐시를 활성화하고, 큰 데이터베이스에 스핑크스를 사용합니다. 여기에 몇 가지 좋은 팁이 있습니다. http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (프랑스어)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top