> 데이터 베이스 > MySQL 튜토리얼 > SQL_CALC_FOUND_ROWS와 SELECT COUNT(*): 페이지 매김 속도가 더 빠른 것은 무엇입니까?

SQL_CALC_FOUND_ROWS와 SELECT COUNT(*): 페이지 매김 속도가 더 빠른 것은 무엇입니까?

DDD
풀어 주다: 2024-12-31 10:35:14
원래의
868명이 탐색했습니다.

SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*): Which is Faster for Pagination?

성능 비교: SQL_CALC_FOUND_ROWS 대 SELECT COUNT(*)

페이지 매김을 사용하는 동안 쿼리의 총 레코드 수를 구할 때 두 가지 등장하는 메소드: SQL_CALC_FOUND_ROWS 및 SELECT COUNT(*). 최적의 접근 방식을 결정하는 것은 다양한 요인에 따라 달라집니다.

방법 1: SQL_CALC_FOUND_ROWS

이 방법은 초기 SELECT 쿼리에서 SQL_CALC_FOUND_ROWS를 사용하고 이후에 FOUND_ROWS()를 사용하여 총계를 검색합니다. 행 수. 구문은 다음과 같습니다.

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
로그인 후 복사

방법 2: SELECT COUNT(*)

또는 별도의 쿼리에서 SELECT COUNT(*)를 사용하여 행 수를 계산합니다. 원래 쿼리를 실행한 후 구문은 다음과 같습니다.

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;
로그인 후 복사

성능 평가

각 방법의 성능은 인덱스 가용성 및 쿼리 복잡성과 같은 요소에 따라 다릅니다. MySQL 성능 블로그의 한 종합 분석에 따르면

  • SQL_CALC_FOUND_ROWS는 일반적으로 두 개의 쿼리를 실행하는 것보다 느립니다. 특히 인덱스가 최적화되지 않았거나 쿼리가 복잡한 경우
  • 행이 늘어날수록 성능 격차가 커집니다.
  • 그러나 복잡한 표현식이나 하위 쿼리가 포함된 쿼리의 경우 인덱스 활용으로 인해 SQL_CALC_FOUND_ROWS가 SELECT COUNT(*)보다 성능이 뛰어날 수 있습니다.

결국 , 이상적인 접근 방식은 특정 상황 및 애플리케이션 요구 사항에 따라 다릅니다. 성능 블로그 게시물에 언급된 바와 같이 "지수 및 기타 요인에 따라 다릅니다."

위 내용은 SQL_CALC_FOUND_ROWS와 SELECT COUNT(*): 페이지 매김 속도가 더 빠른 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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