> 데이터 베이스 > MySQL 튜토리얼 > MySQL 페이지 매김: 단일 쿼리로 총 개수와 페이지 데이터를 얻을 수 있습니까?

MySQL 페이지 매김: 단일 쿼리로 총 개수와 페이지 데이터를 얻을 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-04 07:10:10
원래의
988명이 탐색했습니다.

MySQL Pagination: Can I Get Total Count and Page Data with a Single Query?

MySQL의 페이지 매김: 이중 쿼리 딜레마 탐색

데이터 표시의 중요한 측면인 페이지 매김에는 데이터의 유한한 하위 집합을 표시하는 작업이 포함됩니다. 대규모 데이터세트를 제공하면서 전체 세트를 쉽게 탐색할 수 있습니다. MySQL에서 페이지 매김은 일반적으로 두 가지 쿼리를 사용하여 구현됩니다. 하나는 총 결과 수를 결정하는 쿼리이고 다른 하나는 특정 데이터 페이지를 가져오는 쿼리입니다.

예:

-- Query 1: Count the number of rows
SELECT COUNT(*) FROM `table` WHERE `some_condition`;

-- Query 2: Retrieve the desired page
SELECT `fields` FROM `table` WHERE `some_condition` LIMIT 0, 10;
로그인 후 복사

신뢰할 수 있지만 간단하며 이 접근 방식에는 두 개의 개별 쿼리가 실행되어 데이터베이스의 오버헤드가 증가합니다.

단일 쿼리가 있습니까? 해결책?

질문이 생깁니다. 단일 MySQL 쿼리에서 총 개수와 제한된 결과를 모두 검색할 수 있는 방법이 있습니까?

답변: 아니요, 그렇습니다. 불가능함

제공된 응답에서 알 수 있듯이 단일 MySQL 쿼리를 사용하여 페이지 매김을 달성할 수 있는 직접적인 방법은 없습니다. 개수 및 그에 따른 제한된 데이터 검색은 별도의 쿼리로 수행되어야 합니다.

대체 접근 방식:

  • 캐싱 개수 쿼리: 하나 최적화 기술에는 짧은 기간 동안 총 개수를 캐싱하여 모든 페이지에서 개수 쿼리를 실행할 필요성을 줄이는 작업이 포함됩니다. request.
  • SQL_CALC_FOUND_ROWS: 또 다른 접근 방식은 데이터 검색 쿼리에서 SQL_CALC_FOUND_ROWS 절을 사용한 다음 SELECT FOUND_ROWS()를 실행하는 것입니다. 총 개수를 얻으려면. 이 방법을 사용하면 추가 카운트 쿼리를 방지할 수 있지만 대규모 테이블의 ORDER BY 쿼리에 영향을 미치는 MySQL의 버그로 인해 성능이 저하될 수 있습니다.

결론적으로 MySQL의 페이지 매김에는 일반적으로 두 개의 쿼리가 필요합니다. , 캐싱과 같은 최적화 기술과 SQL_CALC_FOUND_ROWS 방법을 신중하게 고려하면 성능과 효율성을 향상시킬 수 있습니다.

위 내용은 MySQL 페이지 매김: 단일 쿼리로 총 개수와 페이지 데이터를 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿