대형 테이블 행 개수 통계 최적화 전략
대규모 데이터베이스 테이블의 행 개수를 계산하면 성능 문제가 발생할 수 있습니다. 일부 기사에서는 SELECT COUNT(*)
사용을 주의해서 권장하지만 행과 열 수가 많은 테이블에서는 속도가 여전히 문제가 됩니다. 이 문서의 목적은 대규모 테이블의 행을 정확하게 계산하기 위해 데이터베이스 공급업체와 독립적인 방법을 탐색하는 것입니다.
데이터베이스 공급업체 독립 솔루션
가장 간단하고 안정적인 방법은 표준 COUNT(*)
기능을 사용하는 것입니다. 최신 데이터베이스 시스템은 행 수를 추정하는 데 충분한 데이터만 읽으면 되므로 대형 테이블에 대해서도 이 기능을 최적화합니다. 따라서 COUNT(*)
이 선호되는 옵션입니다.
SQL Server 근사치(이 기사의 범위를 벗어남)
SQL Server에 대한 몇 가지 잠재적인 근사치가 있지만 이러한 방법은 이 문서의 범위를 벗어납니다.
기타 참고사항
COUNT(1)
및 COUNT(PrimaryKey)
는 행 수 측면에서 COUNT(*)
과 동일합니다. COUNT(*)
매우 큰 테이블의 성능을 향상시킬 수 있습니다. COUNT(*)
에서 가져온 행 수가 완전히 정확하지 않을 수 있습니다. SQL 서버 예
약 14억 개의 행과 12개의 열이 있는 테이블의 경우 COUNT(*)
힌트와 함께 NOLOCK
을 사용하는 다음 쿼리는 5분 46초 안에 완료됩니다.
1 |
|
또는 시스템의 DMV(동적 관리 뷰)를 사용하여 다음 쿼리를 1초 이내에 완료할 수 있습니다.
1 2 3 4 5 6 |
|
(참고: 두 번째 SQL 문은 불완전하며 원본 텍스트에서 코드 일부가 누락되었습니다.)
위 내용은 매우 큰 데이터베이스 테이블에서 효율적으로 행 수를 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!