>데이터 베이스 >MySQL 튜토리얼 >`SQL_CALC_FOUND_ROWS 대 COUNT(*): 페이지 매김에 어떤 방법이 더 효율적인가요?`

`SQL_CALC_FOUND_ROWS 대 COUNT(*): 페이지 매김에 어떤 방법이 더 효율적인가요?`

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 07:30:11133검색

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

SQL 성능: SELECT SQL_CALC_FOUND_ROWS 대 SELECT COUNT(*)

에서 반환되는 행 수를 제한해야 하는 시나리오를 고려해보세요. 페이징 목적을 위한 SQL 쿼리. 총 레코드 수를 확인하는 데는 두 가지 기본 방법이 있습니다.

방법 1: SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  

방법 2: SELECT COUNT(*)

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

질문 발생: 어떤 방법이 더 효율적인가요?

가장 좋은 방법: 상황에 따라 다름

MySQL 성능 블로그에 따르면 확실한 답은 없습니다. 블로그 작성자인 Peter Zaitsev는 최적의 방법은 인덱스 구성 및 기타 요소에 따라 다르다고 제안합니다.

일반적인 합의

그러나 블로그 게시물에 따르면 SQL_CALC_FOUND_ROWS는 일반적으로 두 개의 쿼리를 실행하는 것보다 느립니다. 보고된 성능 저하가 상당할 수 있으며 잠재적으로 최대 10배까지 느려질 수 있습니다.

위 내용은 `SQL_CALC_FOUND_ROWS 대 COUNT(*): 페이지 매김에 어떤 방법이 더 효율적인가요?`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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