PDO::rowCount와 PHP 성능 분석의 COUNT(*) 비교
PHP에서 PDO를 사용하여 SQL 데이터베이스로 작업할 때 일반적인 작업은 특정 기준과 일치하는 행 수를 계산하는 것입니다. 이는 SQL 쿼리에서 PDO::rowCount() 또는 COUNT(*)를 사용하여 수행할 수 있습니다. 그러나 어떤 방법이 더 나은 성능을 제공하는지에 대한 의문이 생깁니다.
PDO::rowCount() 대 COUNT()
PDO::rowCount()는 다음을 반환합니다. 마지막 SQL 문의 영향을 받은 행 수. 반환된 행 수와 항상 같지 않을 수도 있습니다. 반면, COUNT()는 쿼리 기준을 만족하는 행의 개수를 구체적으로 검색합니다.
MySQL 서버는 내부적으로 COUNT()와 PDO::rowCount()를 다르게 처리합니다. COUNT()는 카운트 결과에 대해서만 메모리를 할당하는 반면, PDO::rowCount()는 메모리를 할당하고 추가 오버헤드가 수반되는 전체 결과 집합을 가져올 준비를 합니다.
일반적으로 SQL에서 COUNT()를 사용합니다. 쿼리는 MySQL의 처리를 최적화하므로 PDO::rowCount()를 사용하는 것보다 더 효율적입니다.
COUNT(*) 대 COUNT(id)
COUNT(*) 및 COUNT(id)를 사용할 때 일반적으로 성능상의 이유로 전자가 선호됩니다.
COUNT(*)는 모든 행의 개수를 검색합니다. , NULL 값이 있는 행 포함. COUNT(id)는 id 열에 NULL이 아닌 값이 있는 행만 계산합니다.
MySQL에는 COUNT()가 COUNT(id)보다 더 효율적으로 평가될 수 있도록 하는 최적화 기능이 있습니다. 이는 와일드카드()가 테이블에서 실제 데이터를 검색할 필요가 없고 행 수만 검색할 필요가 있음을 나타내기 때문입니다.
결론
PHP에서 PDO를 사용하여 행을 계산할 때 최적의 성능을 위해서는 SQL 쿼리에서 PDO::rowCount() 대신 COUNT()를 사용하는 것이 좋습니다. 또한, COUNT()와 COUNT(id) 중 하나를 선택할 경우 MySQL의 최적화로 인해 일반적으로 COUNT(*)가 선호됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3