2013-11-26 3 views
1

여기에 약간의 조언이 필요합니다. 나는 45,000 개의 행을 가진 테이블을 가지고 있기 때문에. 내가 한 것은 여러 INSERT 명령으로 테이블을 내보내는 것입니다. 그러나 예상 시간이 너무 깁니다. 어느 SQL에서로드하는 것이 더 빠릅니까? CSV로 내 보낸 행 또는 여러 INSERT 명령으로 내 보낸 행?MySQL에서 CSV 파일 또는 여러 INSERT 명령을로드하는 것이 더 빠릅니까?

+0

여기를 참조하지만 예상 시간이 너무 깁니다. - 어떻게이 견적을 얻었 니? –

+0

SQL 브라우저 소프트웨어에서 실행합니다. – Jerielle

답변

1

LOAD DATA INFILE이 가장 빠릅니다.

안녕하세요, 귀하는 귀하의 프로그램으로 테이블을 덤핑하고 있습니다. 적재 속도가 중요하다면. belows로 고려하시기 바랍니다 :

  • 는로드하기 전에 여러에게 INSERT INTO .. VALUES (...), (...)
  • 안 INDEX를 보장 로딩 후 수 있습니다. 이것은 더 빠릅니다.
  • LOAD DATA INFILE은 여러 개의 INSERT보다 훨씬 빠르지 만 절충점이 있습니다. 유지 보수 및 도주.

  • BTW, 나는 mysqldump이 다른 것보다 낫다.

45,000 개의 행을로드하는 데 걸리는 시간은 어느 정도입니까?

+0

내 대답에 대해 죄송합니다. 지금 으로서는 35 분이 걸립니다. 그러나 아직 완료되지 않았습니다. – Jerielle

+0

@ Jerielle 감사합니다. 아시다시피,로드 시간은 스키마와 데이터에 따라 다릅니다. 하지만 너무 늦었습니다 (초당 2.15 줄?). 다른 프로세스가있는 동안로드 중입니까? 로드하는 동안'SHOW PROCESSLIST'를 확인 했습니까? –

1

INSERT은 csv의 구문 분석을 건너 뛰기 때문에 더 빠릅니다.

테이블이 MyISAM 인 경우 *.frm, *.myi, *.myd 파일을 복사 할 수 있으며이 마이그레이션이 더 빠릅니다.

+0

조언 해 주셔서 감사합니다. :) – Jerielle

관련 문제