>  기사  >  데이터 베이스  >  인덱스가 있거나 없는 PDO::rowCount() 또는 COUNT(*) 중 어느 것이 더 성능이 좋습니까?

인덱스가 있거나 없는 PDO::rowCount() 또는 COUNT(*) 중 어느 것이 더 성능이 좋습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 07:14:02353검색

Which is More Performant: PDO::rowCount() or COUNT(*) With or Without an Index?

PDO::rowCount 및 COUNT(*) 성능 비교

질문:

행 개수 확인(PDO::rowCount() 사용 또는 쿼리에 COUNT(*) 포함)을 사용하여 SELECT 쿼리에서 어느 것이 더 나은 성능을 발휘합니까? 또한, id 필드에 인덱스를 설정할 때 어떤 옵션이 더 효율적인가요?

답변:

첫 번째 질문: Count(*) 대 PDO ::rowCount()

내부적으로 MySQL의 COUNT()는 카운트 결과만 저장하기 위해 최소 메모리를 할당하는 반면, PHP는 PDO::rowCount()에서 전체 결과 집합을 처리하여 모든 항목에 메모리를 할당합니다. 검색된 결과. 따라서 COUNT()는 MySQL에서 더 빠릅니다.

두 번째 질문: COUNT(id)와 Index

COUNT()를 사용하는 COUNT(*)는 다음과 같습니다. id 필드에 인덱스가 설정된 경우에도 COUNT(id)보다 선호됩니다. 이는 COUNT()가 값을 빠르게 계산하도록 최적화되어 모든 행을 가져올 필요성을 줄이는 반면, COUNT(id)는 각 행에 액세스해야 하므로 성능이 저하될 수 있기 때문입니다.

위 내용은 인덱스가 있거나 없는 PDO::rowCount() 또는 COUNT(*) 중 어느 것이 더 성능이 좋습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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