기본적으로 현재 다음 쿼리가 있습니다.
으아아아현재 보유하고 있는 데이터 양이 많아 시간이 초과되었습니다. 데이터베이스 구성을 수정하지 않고 시간 초과를 방지하는 방법이 있습니까?
P粉6752585982024-03-30 00:05:32
사용하는 flyway 패키지는 호스트 RDBMS의 트랜잭션 의미 체계를 사용하여 불완전한 작업의 전체 롤백을 허용하는 데 가장 적합합니다. 이는 단일 ACID 호환 트랜잭션에서 보여준 것과 같은 업데이트 작업을 수행하도록 설계되었음을 의미합니다.
관련된 테이블이 큰 경우(수백만 행 이상) 트랜잭션이 매우 커질 수 있습니다. MySQL 서버가 충돌하여 트랜잭션 로그가 디스크나 SSD에 유출될 수 있습니다. 이러한 트랜잭션 로그를 커밋하는 데 시간이 오래 걸릴 수 있습니다. 행 수에 대해 언급하지 않았지만 행 수가 많으면 Flyway가 작업에 적합한 도구가 아닐 수 있습니다.
잠금 시간 초과는 다른 동시 활동이 있는 데이터베이스에 대해 이 작업을 수행하고 있음을 의미합니다. 최상의 결과를 얻으려면 조용한 데이터베이스에서 이 작업을 수행할 수 있습니다.
이렇게 하면 잠금 대기 시간 초과를 늘릴 수 있습니다.
으아아아그럼 휴일의 해가 뜨기 전이나 다른 조용한 시간에 다시 시도해 보세요. 자세한 내용은 여기를 참조하세요.
Flyway 작업이 완료되면 잠금 시간 초과를 이전 값으로 복원하는 것이 좋습니다.
한 번에 1000행을 업데이트하는 등 일괄 업데이트도 고려할 수 있습니다. 그러나 flyway는 이것을 지원하지 않는 것 같습니다. 이 길로 가면 또 다른 질문을 할 수 있습니다.