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
재시작하여 적용하면 된다.
'개발 > SQL' 카테고리의 다른 글
mysql 에서 인덱스 속도가 갑자기 느려지는 경우 (0) | 2022.04.18 |
---|---|
데이터 베이스 구조, 데이터 내보내기 (0) | 2022.04.15 |
Got fatal error 1236 from master when reading data from binary log (0) | 2016.04.24 |
SQLite 변수의 데이터 유형 (0) | 2013.12.26 |
[MY-SQL] 현재 DataBase 에 있는 모든 Table 가져오기. (0) | 2011.06.01 |