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 중국어 웹사이트의 기타 관련 기사를 참조하세요!