대부분의 애플리케이션에서 페이징을 위해 SELECT ... ORDER BY ... LIMIT N OFFSET M 패턴을 사용합니다. 데이터가 수십만~수천만 건으로 커지거나 OFFSET이 커질수록 쿼리가 급격히 느려집니다. 왜 느려지는지, 언제 써도 되는지, 그리고 어떤 대안이 더 나은지(키셋/시크 페이징 등)를 예제와 함께 정리합니다.1. OFFSET/LIMIT가 느려지는 구조적 이유OFFSET은 “앞에서 M개를 건너뛴 뒤 N개를 반환”을 의미합니다. 대부분의 DB 엔진(PostgreSQL, MySQL/InnoDB 등)은 다음과 같은 비용을 지불합니다.스캔 건너뛰기 비용: OFFSET으로 건너뛰는 행도 실제로는 읽고(스캔하고) 버려야 합니다. OFFSET이 100,000이면 최소 100,000행을 스캔 ..