>백엔드 개발 >PHP 튜토리얼 >오프셋 및 제한 최적화를 사용하여 MySQL에서 총 쿼리 결과를 계산하는 방법은 무엇입니까?

오프셋 및 제한 최적화를 사용하여 MySQL에서 총 쿼리 결과를 계산하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-23 13:08:30612검색

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

오프셋 및 제한을 사용하여 MySQL에서 전체 쿼리 결과 가져오기

페이지 매김 시나리오에서는 한 페이지에 있는 총 결과 수를 결정하는 것이 중요합니다. 필요한 총 페이지 수를 계산하는 MySQL 쿼리입니다. 한 가지 접근 방식은 쿼리를 두 번 실행하는 것입니다. 한 번은 페이지를 매긴 결과를 검색하기 위한 제한이 있고 다른 한 번은 총 행 수를 계산하기 위한 제한이 없습니다. 그러나 이 접근 방식은 비효율적일 수 있습니다.

SQL_CALC_FOUND_ROWS 입력: 보다 최적화된 솔루션은 초기 쿼리에서 SQL_CALC_FOUND_ROWS 수정자를 활용하는 것입니다. 이 수정자를 포함함으로써 MySQL은 제한을 적용하기 전에 일치하는 행의 총 수를 계산합니다. 그런 다음 SELECT FOUND_ROWS() 문을 실행하여 총 개수를 검색할 수 있습니다.

사용법:

SQL_CALC_FOUND_ROWS를 사용하려면 쿼리 시작 부분에 추가하면 됩니다.

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>

쿼리를 실행한 후 다음을 실행하여 총 행 수를 검색합니다.

<code class="sql">SELECT FOUND_ROWS();</code>

예:

다음을 가정해 보겠습니다. 다음과 같은 쿼리가 있습니다.

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>

총 결과 수를 계산하려면 다음 추가 쿼리를 실행합니다.

<code class="sql">SELECT FOUND_ROWS();</code>

이렇게 하면 다음의 총 행 수가 반환됩니다. Category_id가 12인 디렉토리 테이블을 사용하면 페이지 매김에 필요한 총 페이지 수를 효율적으로 결정할 수 있습니다.

위 내용은 오프셋 및 제한 최적화를 사용하여 MySQL에서 총 쿼리 결과를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.