>데이터 베이스 >MySQL 튜토리얼 >phpMyAdmin이 InnoDB 테이블에 대해 일관되지 않은 행 수를 표시하는 이유는 무엇입니까?

phpMyAdmin이 InnoDB 테이블에 대해 일관되지 않은 행 수를 표시하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-03 09:19:12333검색

Why Does phpMyAdmin Show Inconsistent Row Counts for InnoDB Tables?

phpMyAdmin의 행 수를 신뢰할 수 없습니까?

phpMyAdmin에서 다음과 같은 테이블의 예상 행 수에 상당한 불일치가 발생할 수 있습니다. 변함없이 유지되었습니다. 이러한 혼란스러운 불일치는 기본 데이터베이스 엔진의 행 계산 처리로 인해 발생할 수 있습니다.

정확한 행 수를 유지하는 MyISAM 테이블과 달리, 귀하의 예에 있는 것과 같은 InnoDB 테이블에는 이 기능이 없습니다. 정확한 행 수를 결정하기 위해 InnoDB는 테이블의 모든 단일 행을 힘들게 스캔해야 하므로 대형 테이블의 경우 SELECT COUNT(*) 쿼리의 계산 비용이 많이 듭니다.

phpMyAdmin은 SHOW TABLE STATUS 쿼리를 사용하여 예상 행을 검색합니다. InnoDB에서 계산합니다. 그러나 이 근사값은 실행할 때마다 달라지므로 실제 개수와 상당한 차이가 발생할 수 있습니다.

MySQL 매뉴얼에서는 이러한 제한 사항을 인정합니다. "InnoDB와 같은 스토리지 엔진의 경우 이 값은 [SHOW TABLE STATUS에서] ]는 근사치이며 실제 값과 40~50% 정도 다를 수 있습니다."

정확한 행 수를 계산하려면 설명서를 참조하세요. SELECT COUNT(*)를 사용하는 것이 좋습니다. 또한 InnoDB 문서에서는 동시 트랜잭션으로 인해 서로 다른 행 수가 동시에 "표시"되어 내부 행 계산이 실용적이지 않다고 설명합니다.

따라서 SHOW TABLE STATUS는 추정치를 제공할 수 있지만 절대값을 제공하기에는 부족합니다. 정도. 정확하고 일관된 행 계산을 위해 애플리케이션에서 유지 관리하는 카운터 테이블을 구현하거나 MySQL 쿼리 캐시를 활용하여 성능을 최적화하는 것이 좋습니다.

위 내용은 phpMyAdmin이 InnoDB 테이블에 대해 일관되지 않은 행 수를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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