1. Offset-Based Pagination

1-1. Offset

가장 일반적으로 사용하는 Pagination 기법이다.

SELECT * FROM table LIMIT 15 OFFSET (page - 1) * 15;

사실 LIMIT에는 문제가 없지만, OFFSET에는 문제가 있다.

1-2. 문제점

1-2-1. Performance

offset-paging.png

LIMIT 3, OFFSET 0, 3, 6, 9 로 페이징 처리를 하는 상황이다.

<aside> 💡 즉, OFFSET은 앞의 데이터를 먼저 읽고, LIMIT만큼 읽어서 응답하는 방식이다.

</aside>

만약, 1억개의 데이터가 있는 상황에서 OFFSET이 1억이라면, 1억개의 데이터를 먼저 읽고 응답하게 된다. DB 커넥션, Pool 등의 DB 성능과 관련된 작업까지 포함하게 된다면, 조회 성능은 row가 많고, offset이 커질 수록 저하하게 된다.