상위 1000 개 레코드를 제외하고 테이블을 업데이트해야합니다. 내 쿼리는 다음과 같다 :N 행 이후의 MySQL 업데이트
UPDATE tableA
SET price = 100
WHERE price = 200 AND
item_id =12 AND
status NOT IN (1,2,3);
나는 하위 쿼리 approcah 여기서 일 것이다라는 것을 알고 있지만 나는 200000 개 레코드가 WHERE
조건을 만족하는 거대한 테이블을 데하고 성장하고있다. 따라서 하위 쿼리 방식을 따르면 DB가 커짐에 따라 확장되지 않을 것입니다.
또한 쿼리에 LIMIT
을 지정하는 것을 보았지만 어느 정도 한계가 있습니다. 내 경우에는 특정 오프셋 후 모든 레코드를 업데이트해야합니다.
총 개수를 찾아서 LIMIT로 지정할 수도 있습니다. 그러나 COUNT()
쿼리가 실패합니다.
빠른 답장을 보내 주셔서 감사합니다. 하지만 특정 항목을 선택할 때 ID에 의존 할 수 없어 ID가 순서에 있지 않을 수 있습니다. –
은 ID와 함께 고유 한 auto_increment를 의미합니다. 위의 솔루션이 가장 효율적인 솔루션입니다. 그렇지 않으면 엄청난 부하가 올 때 지루합니다. – Rahul
예. 나도 같은 것을 의미했다 :) –