MySQL Query Cache 설정 및 FOUND_ROWS() 사용한 Num of Rows 구하기

“MySQL Query Cache 설정 후 Limit 를 포함한 SQL 구문의 Num of Rows 를 구하기 위해 SQL_CALC_FOUND_ROWS 와 FOUND_ROWS() 사용하는 방법 입니다. 짧은 SQL문으로 결과값과 행수를 구할 수 있습니다. ”


1. query_cache_type
?1) 설정 확인방법

2) 뜻
0(off) : Query cache 미사용
1(on) : Query cache 사용 (SQL_NO_CACHE 힌트 사용한 쿼리는 미사용)
2(demand) : SQL_CACHE 힌트를 사용하는 쿼리만 cache 사용

2. query_cache 설정
?1) my.cnf 편집 후 재시작

2) 쿼리로 설정

3. Limit 포함된 SQL구문 Num of Rows 구하기

2) limit 구절을 함께 사용할 경우 ROWS 전체를 카운트하기 위해 SQL_CALC_FOUND_ROWS 힌트를 컬럼명 앞에 추가하여 쿼리.

3) FOUND_ROWS() 는 바로 직전 쿼리에 대한 rows 를 출력

* Bitnami WAMP 환경에서 query_cache_type=1 로 설정해도 phpmyadmin 에서 FOUND_ROWS() 값이 출력이 안되며 반대로 query_cache_type=0 으로 설정해도 콘솔에서는 FOUND_ROWS() 값이 정상적으로 출력 되어 원인 파악이 필요합니다.*

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.