OFFSET 경계 문제

OFFSET은 페이지 번호만 기억하므로, 목록이 바뀌면 경계가 함께 밀립니다.

사용자가 1페이지를 본 뒤 새 행이 앞쪽에 들어오거나 삭제되면, 2페이지의 OFFSET 위치가 처음 기대한 행과 달라질 수 있습니다.

1페이지 조회

처음 본 목록

1A
2B
3C
4D
5E
6F

사용자는 A, B, C를 보고 다음 페이지로 이동합니다.

중간 변경

앞쪽에 새 행 추가

1NEW
2A
3B
4C
5D
6E

새 행 때문에 기존 행들의 위치가 한 칸씩 뒤로 밀립니다.

2페이지 OFFSET 3

경계가 바뀐 결과

1NEW
2A
3B
4C
5D
6E

C가 다시 보입니다. 삭제가 끼면 반대로 일부 행이 건너뛰어질 수 있습니다.

OFFSET

페이지 번호 기준이라 목록 변경에 취약할 수 있습니다.

Keyset

마지막으로 본 키 이후를 읽어 경계 흔들림을 줄입니다.

전제

정렬 키가 안정적이고 커서 조건이 정렬 방향과 맞아야 합니다.