게시판 목록을 OFFSET/LIMIT로 페이징하고 있는데, 1페이지는 즉시 나오는데 3000페이지쯤(OFFSET 60000) 가면 응답이 몇 초씩 걸립니다. created_at에 인덱스도 걸려 있어요.
SELECT id, title, created_at
FROM posts
ORDER BY created_at DESC
OFFSET 60000 LIMIT 20;이상한 게, 앞쪽 페이지는 같은 쿼리인데도 빠르거든요. 인덱스가 있으면 뒤 페이지도 바로 20개만 집어오면 되는 거 아닌가 싶은데, 왜 페이지가 깊어질수록 점점 느려지는 걸까요? 데이터는 한 30만 건쯤 됩니다.
댓글 0