본문 바로가기
Back-End/Database, SQL

[MySQL] 페이징 - LIMIT, OFFSET

by developerDoorold 2023. 3. 30.

지난 프로젝트에서 게시판 페이징을 뒷단에서 구현하지 않고 앞단에서 구현했었습니다.

개발 시점과 테스트시에는 아무런 문제가 없었지만 유저가 유입되고

게시글이 많이 쌓이게 되면 성능에 문제가 발생할 것이 분명합니다.(사실 말도 안 되는 개발쇼를 했던 것이다...)

 

리팩토링을 위해 MySQL 페이징 처리 관련 학습한 것을 정리합니다.

 

MySQL 페이징은 LIMITOFFSET으로!

LIMIT : 가져올 개수

OFFSET : 가져오는 시작점(기입된 숫자보다 +1된 행부터 가져옵니다.)

 

SELECT * FROM post LIMIT 10 OFFSET 0; #(1번째부터 10개를 가져옵니다.)
SELECT * FROM post LIMIT 5 OFFSET 2; #(3번째부터 5개를 가져옵니다.)

OFFSET을 사용하지 않고 LIMIT만으로도 가능합니다.

SELECT * FROM test_post LIMIT 0, 10; #(1번째부터 10개를 가져옵니다.)
SELECT * FROM test_post LIMIT 2, 5; #(3번째부터 5개를 가져옵니다.)

 

참고자료

https://zzang9ha.tistory.com/295#%E2%80%BB-offset%EC%9D%80-index%EB%A5%BC-%ED%83%80%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%8B%88-%EB%8C%80%EC%9A%A9%EB%9F%89-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%A1%B0%ED%9A%8C%ED%95%A0-%EB%95%90-%EB%8B%A4%EC%9D%8C%EA%B3%BC-%EA%B0%99%EC%9D%B4-%EC%A1%B0%ED%9A%8C%EB%A5%BC-%ED%95%B4%EC%95%BC-%ED%95%A9%EB%8B%88%EB%8B%A4.

댓글