>데이터 베이스 >MySQL 튜토리얼 >여러 공급업체에 걸쳐 있는 대규모 데이터베이스 테이블의 행 수를 효율적으로 계산하려면 어떻게 해야 합니까?

여러 공급업체에 걸쳐 있는 대규모 데이터베이스 테이블의 행 수를 효율적으로 계산하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-14 16:41:44941검색

How Can I Efficiently Count Rows in a Massive Database Table Across Different Vendors?

대형 데이터베이스 테이블의 행 계산 팁

매우 큰 데이터베이스 테이블을 처리할 때 행을 정확하게 계산하는 것이 어려울 수 있습니다. 많은 기사에서는 전통적인 SELECT COUNT(*) FROM TABLE_NAME 방법이 대규모 데이터 세트를 처리할 때 성능이 좋지 않다는 점을 지적합니다. 이 문서에서는 다음과 같은 특정 요구 사항을 고려하여 데이터베이스 공급업체에 독립적인 행 개수 솔루션을 살펴봅니다.

  • MySQL, Oracle 및 MS SQL Server를 포괄하는 데이터베이스 공급업체에 구애받지 않음
  • 순수한 SQL 솔루션
  • 외부 도구를 사용하거나 데이터베이스 디자인을 수정하지 마세요

데이터베이스 공급업체에 구애받지 않는 솔루션

안타깝게도 현재 COUNT(*) 방법을 능가하고 정확한 행 수를 얻을 수 있는 데이터베이스 공급업체 독립적 솔루션은 없습니다. 표준 구문은 여전히 ​​가장 신뢰할 수 있는 방법입니다.

SQL Server 대략적인 솔루션

SQL Server는 몇 가지 대략적인 솔루션을 제공하지만 이러한 방법은 질문에서 요구하는 정확한 계산을 충족할 수 없기 때문에 이 문서의 범위를 벗어납니다.

보충: SQL Server 예

문제를 설명하기 위해 14억 개의 행과 12개의 열이 있는 테이블을 테스트했습니다.

  • SELECT COUNT(*) FROM MyBigtable WITH (NOLOCK) : 5분 46초가 걸렸고, 카운팅 결과는 1,401,659,700
  • SELECT Total_Rows = SUM(st.row_count) FROM sys.dm_db_partition_stats st WHERE object_name(object_id) = 'MyBigtable' AND (index_id

후자는 테스트 중 동시 쓰기로 인해 약간 더 적은 수의 행을 반환합니다. 따라서 SELECT COUNT(*)은 여전히 ​​정확한 행 수를 얻는 데 선호되는 방법입니다.

위 내용은 여러 공급업체에 걸쳐 있는 대규모 데이터베이스 테이블의 행 수를 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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