MySQL 최적화: 대규모 테이블에 대한 SELECT COUNT() 대 mysql_num_rows()
데이터베이스 최적화에서는 올바른 방법을 선택하는 것이 중요합니다. 대용량 데이터를 효율적으로 처리합니다. SELECT COUNT() 및 mysql_num_rows()는 큰 테이블을 처리할 때 PHP에서 일반적으로 사용되는 두 가지 함수입니다. 그러나 성능 특성은 크게 다릅니다.
SELECT COUNT()와 mysql_num_rows()
SELECT COUNT()는 다음과 같은 행의 개수를 반환합니다. 지정된 조건과 일치합니다. 그러나 실제 데이터를 검색하지 않으므로 메모리와 처리 리소스가 절약됩니다.
mysql_num_rows()는 결과 집합의 행 수를 반환합니다. 그러나 mysql_num_rows()를 사용하려면 서버가 먼저 전체 결과 세트를 메모리로 검색해야 하며, 이는 대규모 테이블의 경우 리소스 집약적일 수 있습니다.
성능 고려 사항
6천만 개의 레코드 테이블의 경우 성능상의 이유로 SELECT COUNT()를 사용하는 것이 좋습니다. 내부적으로 서버는 COUNT() 쿼리를 최적화하여 카운트 결과에 대해서만 메모리를 할당함으로써 메모리 소모를 대폭 줄입니다.
반면, mysql_num_rows()는 서버가 전체 결과에 대해 메모리를 처리하고 할당하도록 요구합니다. 세트. 이는 특히 큰 테이블의 경우 성능 저하로 이어질 수 있습니다.
검색 결과에 대한 페이지 매기기
검색 결과에 대한 페이지 매기기의 경우 현재 2단계 접근 방식을 사용하고 있습니다. 첫 번째 단계에서는 모든 검색 결과를 검색하고 두 번째 단계에서는 SELECT COUNT()를 사용하여 이를 계산하여 페이지 매김을 생성합니다.
성능을 향상하려면 SELECT COUNT()를 함께 사용하는 것이 좋습니다. 다음과 같이 단일 쿼리에 WHERE 조건을 사용합니다.
<code class="php">$condition = " fname='rinchik' "; $result_count = "SELECT COUNT(*) FROM my_large_table WHERE" . $condition;</code>
이 접근 방식을 사용하면 추가 SELECT COUNT() 쿼리가 필요하지 않고 처리 시간이 절약됩니다.
결론
큰 테이블로 작업할 때는 성능상의 이유로 mysql_num_rows() 대신 SELECT COUNT()를 사용하는 것이 중요합니다. 쿼리를 최적화하면 PHP 스크립트의 전반적인 속도와 효율성을 크게 향상시킬 수 있습니다.
위 내용은 SELECT COUNT() 또는 mysql_num_rows(): PHP의 대형 테이블에 어느 것이 더 좋습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!