
mysql에서 우선순위가 낮은 업데이트를 실행하는 방법이 있습니까?
나는 말 그대로 수천 명의 사용자가 동일한 데이터 레코드를 동시에 업데이트하려고 시도하는 매우 높은 로드 애플리케이션을 실행하고 있습니다. 이는 대부분 세션 기반 통계 정보이며 요청과 관련된 대기 시간이 있는 경우 대부분 무시될 수 있습니다. 일부 테이블/행이 잠겨 있는지 확인하고, 그렇다면 서버에 업데이트 쿼리를 전달하지 않기를 원합니다. 그게 가능합니까?
답변1
어떤 데이터베이스 엔진을 사용하고 있나요? MyISAM 또는 InnoDB? MyISAM인 경우 다음 명령을 사용하여 잠금을 볼 수 있습니다.
SHOW FULL PROCESSLIST;
그러나 나는 다른 접근 방식을 취하는 것이 좋습니다. 단일 경합 지점을 갖는 대신 INSERT DELAYED를 사용하여 모든 데이터 지점에 대해 새 행을 삽입하기만 하면 됩니다. 그러면 하루가 끝날 때나 데이터가 필요할 때마다 모든 것을 일괄 처리할 수 있습니다. 이는 MyISAM, MEMORY 및 ARCHIVE 엔진 유형에서만 작동합니다.
출처: dev.mysql.com/doc/refman/5.1/en/insert-delayed.html
이 질문은 Stack Overflow에 속한다고 생각합니다. 아마도 거기에서 더 나은 반응을 얻을 것입니다.
-제프리 리