>  기사  >  데이터 베이스  >  MySQL에서 LIMIT를 사용하여 총 행 수를 효율적으로 검색하는 방법은 무엇입니까?

MySQL에서 LIMIT를 사용하여 총 행 수를 효율적으로 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-27 02:54:30861검색

 How to Efficiently Retrieve Total Row Count with LIMIT in MySQL?

LIMIT 조건을 사용하여 총 행 수 검색

페이지 매김을 위해 LIMIT 절이 포함된 SQL 쿼리를 사용하는 경우 총 행 수를 결정하는 방법은 다음과 같습니다. 도전. 표준 접근 방식에는 쿼리를 두 번 실행하는 작업이 포함됩니다. 한 번은 LIMIT 절 없이 행 수를 얻은 다음 다시 LIMIT를 사용하여 페이지가 매겨진 데이터를 검색합니다. 복잡한 쿼리의 경우 이 프로세스에 시간이 많이 걸릴 수 있습니다.

그러나 MySQL 4.0.0에는 더 효율적인 솔루션이 도입되었습니다.

SQL_CALC_FOUND_ROWS 및 FOUND_ROWS() 사용

SQL_CALC_FOUND_ROWS 옵션은 쿼리의 SELECT 문 뒤에 추가할 수 있습니다. 이는 LIMIT 조건을 고려하지 않고 총 행 수를 계산하도록 MySQL에 플래그를 지정합니다. 총 행 수를 검색하려면 FOUND_ROWS() 함수를 사용하는 두 번째 쿼리가 필요합니다.

사용법:

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

참고: SQL_CALC_FOUND_ROWS는 행 개수를 영구적으로 저장하지 않으므로 첫 번째 쿼리 직후에 두 번째 쿼리를 실행하는 것이 중요합니다.

SQL_CALC_FOUND_ROWS 및 FOUND_ROWS() 지원 중단

As 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;

위 내용은 MySQL에서 LIMIT를 사용하여 총 행 수를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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