Selectivity vs Cardinality 이해하기 - Cardinality 낮아도 인덱스를 걸면 좋은 경우

·
카테고리 없음
status 인덱스가 카디널리티가 낮아도 잘 먹히는 이유부터 복합 인덱스, LIMIT과 ORDER BY, covering index, 그리고 (created_at, status)가 더 좋은 케이스까지 Batch Job Queue를 운영하다 보면 결국 자주 만나게 되는 쿼리가 있습니다.SELECT idFROM job_queueWHERE status = 'PENDING'ORDER BY created_atLIMIT 50;대기 중인 작업(PENDING) 중에서 오래된 것부터 몇 개 가져오는 패턴이죠. 이건 거의 모든 배치/큐 시스템의 기본 동작입니다.그런데 status 컬럼은 보통 값 종류가 몇 개 없습니다. (PENDING, RUNNING, COMPLETED…)그래서 이런 질문이 자연스럽게 나옵니다.statu..