RDB에서 페이징 쿼리의 필요성
●RDB에서 페이징 쿼리의 필요성
select *
from subscribe
limit 500
offset 0;
●LIMIT, OFFSET 방식 페이징 쿼리의 단점은 무엇이고, 어떻게 해결할 수 있을까?
create table subscribe (
id int not null auto_increment,
deleted_at datetime null,
created_at datetime not null,
primary key(id),
key idx_deleted_at_id(deleted_at, id)
);
select *
from subscribe
where
deleted_at >= ? and deleted_at < ?
select *
from subscribe
where
deleted_at >= ? and deleted_at < ?
order by deleted_at, id
limit 10;
select *
from subscribe
where
# deleted_at이 같은 케이스를 대응
(deleted_at = '2024-01-01 00:00:00' and id > 78) or
# 마지막 데이터 이후 데이터 조회
(deleted_at > '2024-01-01 00:00:00' and deleted_at < ?)
order by deleted_at, id
limit 10;