[SQL] SQL 페이지 별 조회 요약
6132 단어 페이지 별 조회
1. MySql 의 LIMIT 와 Oracle 의 ROWNUM 을 바탕 으로 반환 구간 을 직접 제한 할 수 있 습 니 다 (MySql 의 경우 Oracle 의 ROWNUM 을 사용 할 때 하위 조 회 를 사용 하 는 것 에 주의 하 십시오). 방법 1. 반환 구간 을 직접 제한 합 니 다.
SELECT * FROM table WHERE ORDER BY LIMIT (( -1)* ), ;
장점: 쓰기 가 간단 하 다.단점: 페이지 와 페이지 크기 가 너무 크 면 성능 이 현저히 떨어진다.적용: 데이터 양 이 많 지 않 습 니 다.
2. LIMIT (MySql), ROWNUM (Oracle), TOP (SqlServer) 을 바탕 으로 되 돌아 오 는 줄 수 를 제한 할 수 있 기 때문에 다음 과 같은 두 가지 일반적인 방법 (SqlServer 를 예 로 들 면) 을 얻 을 수 있 습 니 다. 방법 2. NOT IN
SELECT TOP * FROM table WHERE NOT IN
(
SELECT TOP ( -1)* FROM table WHERE ORDER BY
)
ORDER BY
장점: 유 니 버 설 이 강하 다.단점: 데이터 양 이 많 을 때 뒤로 넘 기 고 NOT IN 의 데이터 가 너무 많 으 면 성능 에 영향 을 줍 니 다.적용: 데이터 양 이 많 지 않 습 니 다.
방법 3. MAX
SELECT TOP * FROM table WHERE AND id >
(
SELECT ISNULL(MAX(id),0) FROM
(
SELECT TOP (( -1)* ) id FROM table WHERE ORDER BY id
) AS tempTable
)
ORDER BY id
장점: 속도 가 빠 르 고 특히 id 가 메 인 키 일 때.단점: 적용 면 이 좁 아 정렬 조건 이 단일 하고 비교 가 가능 합 니 다.적용: 간단 한 정렬 (특수 한 경우 에 도 유사 한 비교 가능 한 값 으로 변환 하려 고 시도 할 수 있 습 니 다).
3. SqlServer 와 Oracle 기반 ROWNUMBER () 는 데 이 터 를 되 돌려 주 는 줄 번 호 를 얻 을 수 있 습 니 다. 이 를 바탕 으로 반환 제한 구간 에서 다음 과 같은 방법 을 얻 을 수 있 습 니 다 (SqlServer 를 예 로 들 면): 방법 4, ROWNUMBER()
SELECT TOP * FROM
(
SELECT TOP ( * ) ROW_NUMBER() OVER (ORDER BY ) AS RowNum, * FROM table WHERE
) AS tempTable
WHERE RowNum BETWEEN ( -1)* +1 AND *
ORDER BY RowNum
장점: 데이터 양 이 많 을 때 NOT IN 보다 우세 합 니 다.단점: 작은 데 이 터 는 NOT IN 보다 못 하 다.적용: 대부분의 페이지 조회 수요.
이상 은 자신 이 정리 한 졸견 입 니 다. 성능 비 교 는 인터넷 자료 와 개인 판단 에서 나 왔 고 깊이 실험 하지 않 았 습 니 다. 부당 한 점 은 모두 가 지적 해 주 십시오.