집 >데이터 베이스 >MySQL 튜토리얼 >phpMyAdmin이 InnoDB 테이블에 대해 일관되지 않은 행 수를 표시하는 이유는 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!