대규모 테이블을 탐색하는 맥락에서 페이지 매김 최적화는 성능에 매우 중요합니다. 이 문서에서는 이러한 시나리오에서 SELECT COUNT() 및 mysql_num_rows() 사용이 성능에 미치는 영향을 살펴봅니다.
SELECT COUNT() 대 mysql_num_rows()
SELECT COUNT() 및 mysql_num_rows()는 결과 세트의 행 수를 결정하는 데 일반적으로 사용되는 두 가지 방법입니다. 두 방법 모두 이 목표를 달성하지만 효율성과 성능 특성이 다릅니다.
SELECT COUNT()
SELECT COUNT()는 실제로 행 자체를 검색하지 않고 주어진 조건을 사용합니다. 이렇게 하면 메모리 사용량을 최소화하고 개별 행을 처리하는 오버헤드를 방지하므로 대규모 테이블에서 행 수를 계산하는 데 효율적입니다.
mysql_num_rows()
mysql_num_rows() 결과가 완전히 검색된 후 결과 집합의 행 수를 반환합니다. 이 방법은 모든 행을 저장하기 위해 메모리를 할당하고 서버를 컨텍스트 전환, 잠금 및 기타 리소스 오버헤드에 노출시킵니다. 따라서 대규모 데이터 세트의 경우 mysql_num_rows()가 SELECT COUNT()보다 속도가 느리고 효율성이 떨어질 수 있습니다.
권장
대규모 테이블을 처리할 때는 다음을 사용하는 것이 좋습니다. SELECT COUNT()를 사용하여 페이지 매기기 목적으로 행 수를 결정합니다. 이 방법은 리소스 소비와 실행 시간을 줄여 mysql_num_rows()보다 성능이 뛰어납니다. 제시된 특정 시나리오의 경우와 같이 InnoDB의 COUNT() 처리로 인한 성능 제한으로 인해 SELECT COUNT()를 사용할 수 없는 경우 행 수를 추적하고 CRUD 작업 중에 이를 업데이트하기 위해 별도의 테이블을 유지하는 것이 좋습니다. 이 접근 방식을 사용하면 후속 작업의 성능을 저하시키지 않으면서 효율적인 페이지 매김을 달성할 수 있습니다.
위 내용은 SELECT COUNT() 대 mysql_num_rows(): 대규모 데이터 세트의 페이지 매김에 어느 것이 더 좋습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!