DB 파일 내보내기 Export

 

데이터가 큰 db 를 export, import 를 하는 경우 많은 시간이 소요되기 때문에

조금이라도 시간을 줄여보자.

 

mysqldump -uroot -p [디비명] > [파일명]
mysqldump -uroot -p db > db.sql

 

평소에 사용하던 db 에 있는 데이터를 sql 파일 형태로 내보기로 보낸다.

하지만 다음과같은 속성을 이용하면 시간을 조금더 줄일수있다.

 

--no-autocommit=1 : 

  autocommit을 끄고 개의 테이블 입력 완료후 commit 수행, 오류 발생시 다시 처음부터 시작함

 

--single-transaction=1 :

  작업 후에 변경 된 데이터의 내역을 다시 적용하지 않는다.

 

--extended-insert=1 : 

  INSERT 구문이 늘어나는 것을 막아준다.

 

--skip-disable-keys

인덱스 비활성화를 막습니다. 덤프의 경우 인덱스를 비활성화 하고 INSERT 를 빠르게 하지만

이미 저장되어있는 데이터가 많은경우 오히려 인덱스를 비활성화 하는데 오랜시간이 소요될수있습니다.

넣으려는 데이터베이스에 이미 데이터값이 많이 존재하는경우에는 인덱스 비활성화를 하지 않는것이

더 빠른 작업에 도움이 됩니다.

 

 

 

다음과 같이 사용할수있다.

 

mysqldump -uroot -p db --no-autocommit=1 --single-transaction=1 --extended-insert=1 > db.sql

 

사용하는 경우 확연히 시간이 줄어드는것을 확인할수있다.

 

 

DB 파일 가져오기 import

 

mysql 에서 가져오는 경우 속성값에 영향을 받으므로 my.conf 에서 속성값을 수정하여준다.

 

sort_buffer_size = 1000M

myisam_sort_buffer_size = 1000M

인덱스 를 정렬하거나 또는 인덱스를 생성할 때 할당되는 버퍼의 크기입니다 .

 

myisam_max_sort_file_size = 10G

MyISAM인덱스 를 재생성하는 동안 MySQL이 사용할 수 있는 임시 파일의 최대 크기 파일 크기가 이 값보다 크면 인덱스가 대신 키 캐시를 사용하여 만들어지므로 속도가 느립니다. 값은 바이트 단위로 제공됩니다.

 

max_allowed_packet = 1000M

bulk_insert_buffer_size = 256M

key_buffer_size = 500M

 

 

mysql -u root -p db < db.sql

 

 

이후 

service mysql restart

 

재시작하여 적용하면 된다.

 

 

 

+ Recent posts