> 게시물 리스트에서 timestamp 필드를 비교하여
> 가장 최신의 순서대로 게시물을 20개씩
> 나누어서 리스트하고 싶습니다.
> 현재 게시물이 많다고 가정한다면
> select * from board order by timestamp;
> 형식으로 비교하여 전체를 가져온후에 20개를
> 사용하는 방법은 너무 부하가 많이 걸릴 것 같은데,
> 좋은 방법은 없을까요?
> 사용 환경은 Mysql + PHP입니다.
> 제가 알아본 바로는 Mysql에서는 Transaction이
> 불가능하다고 하던데...
원하시는 작업은 말씀하신것 처럼 할 경우 엄청난 메모리 소요를 할수 있고 다음으로 속도 상의 문제도 있습니다.
그러므로
select * from board where timestamp >= '....' limit 20
order by timestamp;
이런식의 query 를 줘야 합니다.
이럴 경우 문제점은 server 측에서 비교연산등을 하게 되므로 속도가 느려 질것이라는 것인데 모든 row 를 다 가져 오는 불합리 보다는 훨씬 나은 것으로 생각됩니다.
트랜젝션은 지원되지 않으므로 이용할 수 없습니다.
|