문제

하루에 FTP를 사용하여 인터넷에서 다운로드 한 새 파일과 MySQLimport로 MySQL 테이블을 업데이트해야합니다. 그러나 MySQLimport 작업 중에 내 웹 사이트가 원활하게 실행되기를 원합니다. 사용자가 가져 오기가 완료되기를 기다리지 않도록하는 좋은 방법은 무엇입니까? 임시 테이블로 가져온 다음 이름을 바꿀 생각입니다. 좋은 계획인가요?

도움이 되었습니까?

해결책

알려진 사실은 MySQL에서 하나 이상의 이름을 변경할 수 있으며 모든 이름 변경을 원자 적으로 수행한다는 것입니다.

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

이름 바꾸기 테이블은 독자를 차단하지만 (실제로 이름의 해상도를 차단할 것임) 매우 빠른 작업이어야합니다.

다른 팁

증분 업데이트의 경우 CRON / 스케줄링을 통해 새 데이터의 삽입을 스로틀 할 수 있습니다.

매분 XYZ 레코드로드, 이전 업데이트가 완료되었는지, 잠금 장치, 지연된 삽입, 헹굼 및 반복이 있는지 확인하십시오.

현명하게 현명 해지려면 업데이트 스크립트가 런타임시 서버로드를 확인하고 그에 따라 가져 오기 수를 조정하도록하십시오.

이로 인해 신선한 데이터가 배치로 나타나지 만 사이트가 업데이트되는 동안 사이트를 계속 실행할 수 있습니다.

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