>  Q&A  >  본문

잠금 대기 시간 초과를 방지하기 위해 대용량 데이터 볼륨 업데이트 쿼리에 대한 모범 사례는 무엇입니까?

기본적으로 현재 다음 쿼리가 있습니다.

으아아아

현재 보유하고 있는 데이터 양이 많아 시간이 초과되었습니다. 데이터베이스 구성을 수정하지 않고 시간 초과를 방지하는 방법이 있습니까?

P粉842215006P粉842215006204일 전368

모든 응답(1)나는 대답할 것이다

  • P粉675258598

    P粉6752585982024-03-30 00:05:32

    사용하는 패키지는 호스트 RDBMS의 트랜잭션 의미 체계를 사용하여 불완전한 작업의 전체 롤백을 허용하는 데 가장 적합합니다. 이는 단일 ACID 호환 트랜잭션에서 보여준 것과 같은 업데이트 작업을 수행하도록 설계되었음을 의미합니다.

    관련된 테이블이 큰 경우(수백만 행 이상) 트랜잭션이 매우 커질 수 있습니다. MySQL 서버가 충돌하여 트랜잭션 로그가 디스크나 SSD에 유출될 수 있습니다. 이러한 트랜잭션 로그를 커밋하는 데 시간이 오래 걸릴 수 있습니다. 행 수에 대해 언급하지 않았지만 행 수가 많으면 Flyway가 작업에 적합한 도구가 아닐 수 있습니다.

    잠금 시간 초과는 다른 동시 활동이 있는 데이터베이스에 대해 이 작업을 수행하고 있음을 의미합니다. 최상의 결과를 얻으려면 조용한 데이터베이스에서 이 작업을 수행할 수 있습니다.

    이렇게 하면 잠금 대기 시간 초과를 늘릴 수 있습니다.

    으아아아

    그럼 휴일의 해가 뜨기 전이나 다른 조용한 시간에 다시 시도해 보세요. 자세한 내용은 여기를 참조하세요.

    Flyway 작업이 완료되면 잠금 시간 초과를 이전 값으로 복원하는 것이 좋습니다.

    한 번에 1000행을 업데이트하는 등 일괄 업데이트도 고려할 수 있습니다. 그러나 flyway는 이것을 지원하지 않는 것 같습니다. 이 길로 가면 또 다른 질문을 할 수 있습니다.

    회신하다
    0
  • 취소회신하다