웹 사이트 중단없이 MySQL 테이블을 새로 고치는 방법은 무엇입니까?
-
13-09-2019 - |
문제
하루에 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 레코드로드, 이전 업데이트가 완료되었는지, 잠금 장치, 지연된 삽입, 헹굼 및 반복이 있는지 확인하십시오.
현명하게 현명 해지려면 업데이트 스크립트가 런타임시 서버로드를 확인하고 그에 따라 가져 오기 수를 조정하도록하십시오.
이로 인해 신선한 데이터가 배치로 나타나지 만 사이트가 업데이트되는 동안 사이트를 계속 실행할 수 있습니다.
제휴하지 않습니다 StackOverflow