>데이터 베이스 >MySQL 튜토리얼 >페이지를 매긴 SQL 쿼리에서 총 행 수를 효율적으로 결정하는 방법은 무엇입니까?

페이지를 매긴 SQL 쿼리에서 총 행 수를 효율적으로 결정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 10:44:28761검색

How to Efficiently Determine Total Row Count in Paginated SQL Queries?

페이지 매김을 통한 총 행 수 결정

SQL 쿼리에서 페이지 매김을 구현할 때 총 행 수를 정확하게 결정하는 것이 중요할 수 있습니다. 쿼리를 두 번 실행합니다. 한 번은 행 수를 계산하기 위해 LIMIT 절 없이 실행하고 한 번은 페이지가 매겨진 데이터를 검색하기 위해 LIMIT 절을 사용하여 실행하는 것은 최적이 아닐 수 있습니다. 특히 복잡한 쿼리의 경우 더욱 그렇습니다.

다행히도 MySQL은 다음과 같은 우아한 솔루션을 제공합니다. SQL_CALC_FOUND_ROWS 및 FOUND_ROWS() 구문. 기본 쿼리에 SQL_CALC_FOUND_ROWS를 추가하면 MySQL은 LIMIT 절이 있는 경우에도 총 행 수를 계산합니다. FOUND_ROWS()를 사용하는 후속 쿼리는 이 개수를 검색합니다.

예는 다음과 같습니다.

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();

이 접근 방식은 쿼리를 두 번 실행하는 것보다 빠르며 정확한 총 개수를 제공합니다.

MySQL 8에서 더 이상 사용되지 않는 함수

MySQL 8.0.17에서는 SQL_CALC_FOUND_ROWS 및 FOUND_ROWS()가 더 이상 사용되지 않습니다. 최신 MySQL 버전의 경우 COUNT를 대신 사용하는 것이 좋습니다.

SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;

이러한 기술을 활용하면 개발자는 여러 쿼리로 인한 오버헤드 없이 페이지를 매긴 SQL 쿼리의 행을 정확하게 계산할 수 있습니다.

위 내용은 페이지를 매긴 SQL 쿼리에서 총 행 수를 효율적으로 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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