까지 대용량 데이터를 읽지 않으려면 블록 사용자없이 이전 데이터를 제거하는 방법 모든 데이터를 삭제하고 대신 새 데이터를 가져 오는 거대한 테이블이 24 시간마다 필요합니다.새 데이터를 테이블에 삽입하고 프로세스가 끝날 때까지 (예 : MySql)
이 테이블을 자르고 블록 사용자없이이 테이블의 데이터를 읽을 수있는 새로운 데이터를 삽입하려면 어떻게해야합니까? (더 나은 어떤 옵션을 쓰기 이상의 적절한 옵션 또는 표준 용액 제안 해주십시오)
옵션 1 : 내가해야 할 무슨 생각
1. insert new data to temp table
2. drop old table
3. rename temp table to the table name
옵션 2를 (문제 : 사용자가 중간에 테이블 데이터에 액세스하지 못할) : 당신이 오래된 데이터가있는 경우
1. truncate the table
2. insert new data to table
사용자에게 중단없는 읽기 액세스를 원할 경우 대체하기 전에 대부분의 데이터가 유효해야합니다. 따라서 변경된 데이터를 선택적으로 업데이트하고 전체 테이블을 삭제하는 대신 새 데이터를 삽입하는 것이 좋습니다. –
그러나 잘라내 기와 삽입에 비해서 시간이 많이 걸리는 프로세스입니다. – AnandPhadke
단일 트랜잭션에서'delete '&'insert'를 사용하지 않으시겠습니까? 그렇게하면 다른 사용자는 커밋 될 때까지 변경 사항을 볼 수 없습니다. –