본문 바로가기
MySQL

count(*)와 인덱스

by AsCE_hyunseung 2021. 4. 9.
  • 보통 SQL 쿼리의 SELECT 절에서의 *는 모든 컬럼을 가지고 오기 때문에 속도가 느리다고 인식한다
  • 하지만 count(*)에서는 내부적으로 데이터를 읽지않고 행의 갯수만 훑고 지나간다.(null값 체크를 안한다.)
  • count(컬럼)을 하는 경우에는 null값 체크를 한다.

 

count(*), count(컬럼) 차이

 

  • MyISAM 엔진에서는 InnoDB와는 다르게 COUNT(*)에 대한 정보를 저장하고 있다.
  • 해당 컬럼에 NULL이 있을 경우에는 풀 테이블 스캔을 한다(인덱스가 있을 경우에는 풀 인덱스 스캔)
MyISAM 엔진에서의 count(*), count(컬럼) 차이

 

 

'MySQL' 카테고리의 다른 글

서브쿼리  (0) 2021.05.05
쿼리 캐시  (0) 2021.05.02
인덱스 사용시 주의사항  (0) 2021.04.06
TIMESTAMP의 범위가 2038-01-19 03:14:07까지인 이유  (0) 2021.04.03
문자셋 변환  (0) 2021.04.03