집 >데이터 베이스 >MySQL 튜토리얼 >인덱스가 있거나 없는 PDO::rowCount() 또는 COUNT(*) 중 어느 것이 더 성능이 좋습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!