| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 무지개 토토 : 문서 : 9.3 : 정렬 행 | 토토 사이트 : 문서 : 9.3 : 쿼리 | 제7장. 쿼리 | 와이즈 토토 : 문서 : 9.3 : 값 와이즈 토토 | |
제한그리고오프셋당신은 단지 일부만 검색할 수 있습니다 쿼리의 나머지 부분에 의해 생성된 행:
선택select_list보낸 사람테이블_표현
    [주문 기준 ...]
    [한도번호| 모두] [오프셋번호 ]
한계 개수가 주어지면 그 만큼의 행만 생성됩니다. 반환됩니다(그러나 쿼리 자체에서 더 적은 행을 생성하는 경우 더 적을 수도 있음).모두 제한생략한 것과 같습니다제한절.
오프셋그만큼 많은 행을 건너뛰라고 합니다. 행 반환을 시작하기 전에.오프셋 0생략한 것과 같습니다오프셋절, 그리고제한 NULL생략한 것과 같습니다제한절. 둘 다인 경우오프셋그리고제한나타나다, 그럼오프셋이전 행을 건너뜁니다. 세기 시작함제한행 돌아왔습니다.
사용 시제한중요한 것은 사용하다주문 기준다음을 제한하는 절 결과 행을 고유한 순서로 정렬합니다. 그렇지 않으면 당신은 얻을 것이다 쿼리 행의 예측할 수 없는 하위 집합입니다. 당신은 요구할 수도 있습니다 10번째부터 20번째 행까지이고, 10번째부터 20번째 행까지입니다. 무슨 주문? 지정하지 않는 한 순서를 알 수 없습니다.주문 기준.
쿼리 최적화 프로그램은 다음을 수행합니다.제한속으로 쿼리 계획을 생성할 때 계정을 사용하므로 무엇에 따라 다른 계획(다른 행 순서 생성) 당신은 위해 기부합니다한도그리고오프셋. 따라서 다른 것을 사용하여제한/오프셋값 쿼리 결과의 다른 하위 집합 선택일관되지 않은 결과를 제공합니다그렇지 않은 경우 다음을 사용하여 예측 가능한 결과 순서를 적용합니다.주문 기준. 이것은 버그가 아닙니다. 그것은 타고난 것입니다 SQL이 제공을 약속하지 않는다는 사실의 결과 다음을 제외하고는 특정 순서로 쿼리 결과를 반환합니다.주문 기준순서를 제한하는 데 사용됩니다.
다음으로 건너뛴 행은오프셋절 여전히 서버 내부에서 계산해야 합니다. 그러므로 큰오프셋비효율적일 수 있습니다.