나는 수백만 개의 행을 가진 하나의 테이블을 가지고 있으며 클라이언트의 hundres는 동시에이 테이블에 액세스하고 있으며, 각각은 20 개의 고유 한 행을 가져야하며, 마지막 행에 배치해야합니다.동시에 여러 클라이언트에 대해 고유 한 결과 제공
내 설정은 다음과 같습니다
테이블 구조 :
id | last_access | reserved_id | [Data columns]
id + last_access is indexed
나는 다음을 사용 (20 개)의 고유 행을 선택하는 경우 :
UPDATE "table" SET "reserved" = 'client-id_timestamp' WHERE "reserved" = ''ORDER BY "last_access" ASC LIMIT 20
이 업데이트 쿼리가 매우 나쁜 성능 현명하다,이다 왜 내가 묻는 이유 :
내 요구 사항에 대한 더 나은 해결책이 있습니까? 다른 테이블 구조는 아마도?
따옴표가 아닌 열 이름을 사용하여 백틱을 사용합니다. 따옴표는 문자열을 나타냅니다. –
그것은 단지 예 였지만 어쨌든 언급했습니다. – Jeppe