반응형
한 번에 4천만 개의 mysql 셀 업데이트
mysql에 있는 약 4천만 개의 데이터를 한 번에 업데이트할 수 있습니까?업데이트란 테이블을 가져와 그 일부를 훨씬 더 큰 다른 테이블에 복사하는 것을 의미합니다.그것은 한 시간에 한 번씩 일어나야 할 것입니다.
구문은 다음과 같습니다.
INSERT INTO much_larger_table (cols...)
SELECT cols... FROM a_table
WHERE ...conditions...;
(테이블에 대한 설명이 없기 때문에 자리 표시자를 사용하고 있습니다.
이와 같은 구문을 사용하여 복사할 수 있는 행 수에는 제한이 없지만 한 번에 수행할 작업 수에는 실질적인 제한이 있습니다.
물론 시간이 걸릴 것입니다.서버와 테이블에 관련된 많은 요인에 따라 달라지기 때문에 시간이 얼마나 걸릴지 예측할 수 없습니다.예약된 작업 사이에 한 시간 이상 걸릴 수 있습니다.
위험은 INSERT가...이와 같은 SELECT 문은 오리진 테이블에서 읽을 때 행을 잠급니다.즉, 어떤 세션도 해당 행을 수정할 수 없으며 갭 잠금에 따라 해당 테이블의 다른 행을 삽입하거나 업데이트할 수도 없습니다.
나는 우리 회사 개발자들에게 한 거래당 배치를 1000 행으로 제한하라고 말합니다.이를 통해 각 트랜잭션을 신속하게 완료하고, 잠긴 행 수와 잠금 기간을 줄이며, MySQL 가비지 수집을 계속할 수 있습니다.
언급URL : https://stackoverflow.com/questions/67690469/updating-40-million-mysql-cells-at-once
반응형
'source' 카테고리의 다른 글
R 메모리 관리 / 크기가 nMb인 벡터를 할당할 수 없습니다. (0) | 2023.07.13 |
---|---|
Rspec: "array.== another_array"여야 하지만 주문과 관련이 없습니다. (0) | 2023.07.13 |
Tomcat을 시작하는 데 너무 많은 시간이 소요됨 - Java SecureRandom (0) | 2023.07.13 |
삽입에서 복사한 iframe에 올바른 URL이 표시되지 않음 버튼 (0) | 2023.07.13 |
TestFlight 베타 설치를 통해 iOS 앱이 실행 중인지 런타임에 확인하는 방법 (0) | 2023.07.13 |