2009-12-05 4 views
3

하루에 한 번 ftp와 mysqlimport를 사용하여 인터넷에서 다운로드 한 새 파일로 MySQL 테이블을 업데이트해야합니다. 그러나, 나는 내 웹 사이트가 mysqlimport 작업 중에 매끄럽게 계속 실행되기를 바란다. 꽤 오랜 시간이 걸린다. 사용자가 가져 오기가 끝날 때까지 기다리지 않는 것이 좋은 방법은 무엇입니까? 임시 테이블로 가져온 다음 이름을 바꾸는 것이 좋습니다. 그게 좋은 계획 이니?웹 사이트 중단없이 MySQL 테이블을 새로 고치는 방법은 무엇입니까?

답변

8

거의 알려지지 않은 사실은 mysql에서 둘 이상의 이름 바꾸기 문을 연결할 수 있으며 모든 이름 변경을 자동으로 수행한다는 것입니다.

create table newtable like oldtable; 
insert into newtable ....... 
rename table oldtable to deleteme, newtable to oldtable; 
drop table deleteme; 

이름 바꾸기 테이블은 독자를 차단하지만 실제로는 매우 빠른 작업이어야합니다.

0

증분 업데이트의 경우 cron/scheduling을 통해 새 데이터 삽입을 쉽게 조절할 수 있습니다.

매분마다 XYZ 레코드를로드하고 이전 업데이트가 완료되었는지 확인하고 잠금 파일을 만들고 지연된 삽입, 헹굼 및 반복을 수행하십시오.

현실감을 높이려면 런타임시 서버로드를 확인하고 그에 따라 가져 오기 수를 조정하십시오.

이렇게하면 새로운 데이터가 일괄 적으로 표시되지만 업데이트되는 동안 사이트가 계속 실행되게 할 수 있습니다.

관련 문제