> 데이터 베이스 > MySQL 튜토리얼 > 'explain selected *' 행 수가 'count()'와 다른 이유는 무엇입니까?

'explain selected *' 행 수가 'count()'와 다른 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-07 02:42:02
원래의
607명이 탐색했습니다.

Why Does

"count()"와 "explain selected *"" 사이의 행 개수 편차

MySQL의 "explain selected *" 명령 쿼리 중에 처리된 행의 추정치를 제공합니다. 그러나 이 추정치는 "count()"를 사용하여 얻은 실제 행 수와 다를 수 있습니다. function.

설명

"explain selected *" 문은 MySQL이 쿼리를 실행하는 방법에 대한 정보를 표시합니다. 제공되는 세부 정보 중에는 예상되는 행 수가 있습니다. 쿼리는 쿼리되는 테이블에 대해 MySQL에서 유지 관리하는 통계를 기반으로 합니다.

그러나 이러한 통계가 항상 정확하지는 않습니다. 데이터 분포, 테이블 구조, 쿼리 컨텍스트 등의 요소가 추정의 정확성에 영향을 미칠 수 있습니다. 결과적으로 "explain selected *" 행 수가 쿼리가 처리하는 실제 행 수와 일치하지 않을 수 있습니다.

다음 예를 고려해 보세요.

관찰한 대로 "설명이 선택되었습니다. *" 문은 데이터를 검색하기 위해 1,274,785개의 행을 검색할 것으로 추정합니다. 그러나 "count()" 함수는 실제 행 수인 1,291,958개 행을 반환합니다.

의미

행 수 간의 불일치로 인해 사용자는 인덱스가 쿼리를 최적화하는 데 사용됩니다. 그러나 그렇지 않을 수도 있으며 쿼리는 여전히 상당수의 행을 검색하고 있을 수 있습니다.

결론

"explain selected *"는 귀중한 정보를 제공하지만 쿼리 실행과 관련하여 쿼리에서 처리된 실제 행 수를 정확하게 측정하는 데 의존해서는 안 됩니다. 일치하는 행의 정확한 개수를 얻으려면 "count()" 함수를 사용해야 합니다.

위 내용은 'explain selected *' 행 수가 'count()'와 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿