데이터베이스에 항목 테이블이 있으며 이제 그 안의 userid 필드를 업데이트해야 합니다.
문은 UPDATE items SET userid = xxx WHERE userid = 0limit 1;
입니다. >최적화를 위해 거래가 활성화되었습니다. 이제 시간이 지났는데도 기사 30,000개를 업데이트하는 데 3분이 걸립니다.
아침에 임시 테이블을 생성해보고, userid->items 배열을 저장한 후, 임시 테이블을 연속적으로 쿼리하는 php 스크립트를 작성해서 동작시켜 보세요.
그런데 이렇게 여러 개의 스크립트를 실행하면 하나만 살아남게 되고... 모니터링 효과도 얻을 수 없게 됩니다.
현재 생각은 업데이트 작업을 삭제와 삽입으로 나누는 것입니다.. 지금 시도해 보세요
또한 PHP를 개발하는 경우 어떤 메시지 큐를 사용하는 것이 더 좋은지 묻고 싶습니다. PHP 버전의 Rabbitmq에 대한 문서를 찾을 수 없습니다. . .
업데이트 대신 바꾸기를 사용하거나 중복 키 업데이트 시 삽입...을 사용하여 일괄 업데이트할 수 있습니다.
또한 Rabbitmq PHP 버전의 데모가 첨부되어 있습니다:
https://github.com/yuansir/ra...
redis를 대기열로 사용하는 것이 일반적입니다. 제한 때문에 SQL이 느려질 수 있습니다. 업데이트할 모든 데이터의 ID를 꺼내서 업데이트해 보세요. 훨씬 나아질 것입니다
.