"제한 1000,25"대 "제한 25 오프셋 1000"


11

최근에 MySQL에 offset기능 이 있다는 것을 알았습니다 . 오프셋 결과 또는 오프셋과 한계 변형의 차이점에 대한 설명서를 찾으려고했지만 원하는 것을 찾을 수없는 것 같습니다.

테이블에 10.000 개의 행이 있고 1.000 행에서 25 개의 결과를 원한다고 가정 해 봅시다. 지금까지 얻은 한 동일한 결과를 얻기 위해 두 가지를 모두 할 수 있습니다.

SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000

내가 알고 싶은 것은 둘 사이의 차이점입니다.

  • 이것은 실제로 동일하게 작동합니까, 아니면 내 이해가 잘못 되었습니까?
  • 큰 테이블에서 하나 더 느리거나 빠릅니다.
  • 내가 할 때 오프셋의 결과가 변경됩니까 WHERE column=1(열의 값이 100 이상임)
  • 내가 할 때 오프셋의 결과가 변경됩니까 ORDER BY column ASC(임의의 값이 있다고 가정)

이것이 '멍청한'질문이고 누군가 주제를 밝히는 문서를 알고 있다면 답장에 추가하십시오.
느낌 오프셋이 정렬 및 위치를 무시하고 데이터베이스에서 발견 된 첫 번째 X 행을 건너 뜁니다.


MySQL 문서는 이것을 완벽하게 설명합니다. 직접보고 싶지 않은 이유가 있습니까?
siride

1
"PostgreSQL과의 호환성을 위해 MySQL은 LIMIT row_count OFFSET 오프셋 구문도 지원합니다." ( dev.mysql.com/doc/refman/5.5/en/select.html에서 )
siride

이것은 여전히 ​​내 질문에 대답하지 않기 때문입니다. 귀하의 견적 (및 페이지의 텍스트)에서 오프셋이 한계와 동일한 것으로 결론을 내릴 수 있습니다.
Martijn

1
같은 것을 표현하는 문법이 다릅니다. 다른 하위 질문은 제목 및 게시물의 첫 부분과 완전히 다릅니다.
siride

1
동일한 경우 다른 쿼리는 두 상황에서 다르게 영향을 미치지 않습니다. 나는 그것이 똑같은 것이라는 것을 확신하지 못했습니다. 그것은 내가 찾고있는 대답이었습니다. 감사합니다.
Martijn

답변:


9

운영 측면에서

SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000

진술에는 전혀 차이가 없습니다

@siride의 의견은 정확히 요점입니다.

LIMIT 1000,25 방법 LIMIT 25 OFFSET 1000

동일한 문서에서

LIMIT row_count 에 해당 LIMIT 0, row_count

실제 질문

  • 이것은 실제로 동일하게 작동합니까, 아니면 내 이해가 잘못 되었습니까?
  • 큰 테이블에서 하나 더 느리거나 빠릅니다.

두 쿼리가 동일하므로 차이가 없습니다

  • WHERE column = 1을 수행 할 때 오프셋 결과가 변경됩니까?
  • ORDER BY 열 ASC를 수행 할 때 오프셋 결과가 변경됩니까 (임의의 값이 있다고 가정)

를 사용하면 LIMIT결과 집합이 변경되지 않습니다. 단순히 결과 집합 내에서 탐색합니다.

이 쿼리

SELECT id,name,description FROM tablename ORDER BY id LIMIT 1000,25

~와 다를 것이다

SELECT * FROM (SELECT id,name,description FROM tablename LIMIT 1000,25) A ORDER BY id;

LIMIT가 다른 단계에서 적용되기 때문입니다.

tablename의 행 수가 1000 개 미만인 경우 첫 번째 쿼리는 아무것도 반환하지 않습니다.

하위 쿼리의 행 수가 1000 개 미만인 경우 두 번째 쿼리는 아무것도 반환하지 않습니다.

결론

올바른 단계에서 데이터를 정렬하려면 쿼리를 조각해야합니다.


1
감사합니다. 이것은 : "문에는 전혀 차이가 없습니다"는 내가 찾던 것과 정확히 같았으며 정보의 비트를 통해 정렬 또는 중요하지 않은 부분을 볼 수 있습니다. 그것이 똑같은 것인지 확실하지 않았으며, 악마를 코딩하는 데 세부 사항이 있음을 확실히 알고 싶습니다.)
Martijn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.