Skip to content

jjunes.com

2011.05.27 21:37

[MySQL] Query Cache

조회 수 4464 추천 수 0 댓글 0
Query Cache

MySQL 4.0.1부터 Query Cache라는 기능이 추가되었다.
이것은 최근에 실행된 select질의문과 그 결과를 메모리에 저장하는 기능이다.
자주 사용되는 질의문이라면 query cache로부터 결과값을 바로 불러들이므로 parsing, execution의 부하를 제거할 수 있다.
이때 사용되는 질의는 동일한 질의(identical queries)여야 적용된다.

query cache의 적용사례는 아주 풍부하다고 볼 수 있겠다.
뉴스의 헤드라인을 보여주거나, 게시판의 최근목록을 보여주는 메인페이지에 적용될 수 있다.
(테이블 변동이 자주 발생하지 않고 동일한 질의(identical queres)가 많은 경우)


* 동일한 질의(identical queries)
오라클의 경우가 같다고 생각하면 된다.
예를 들어, select * from test와 Select * from TEST는 대소문자가 다르므로 동일한 질의가 아니다.

1. 모든 문자(대소문자,스페이스,..)가 동일해야 한다.
2. 사용하는 데이터베이스, 통신프로토콜, 캐릭터셋이 동일해야 한다.

데이터가 변경되면, query cache내에 있는 관련된 모든 엔트리들이 flush되어지므로 항상 최신의 데이터를 가지고 있게 된다. 따라서, query cache가 잘못된 데이터(stale data:변경사항이 반영되지 않은 데이터)를 반환하는 경우는 없다.


query cache는 디폴트로 disable(query_cache_size=0)되어 있는데, query cache와 관련된 변수는 다음과 같다.
보통 query_cache_size변수값만 설정해주고, 나머지 변수들은 디폴트로 두면 된다.

query_cache_limit : 저장가능한 최대 results크기(디폴트:1M) 보통 query_cache_size의 1~10%정도 설정
query_cache_size  : results를 저장하기 위해 메모리 할당량. 0으로 지정하면 query cache를 disable함
query_cache_type  : 0(OFF)   : results를 캐쉬하거나 retrieve하지 않음.
                    1(ON)    : select sql_no_cache.. 쿼리를 제외한 모든 results를 캐쉬
                    2(DEMAND): select sql_cache... 쿼리만 캐쉬

설정파일
Unix: /etc/my.cnf
윈도: c:\winnt\my.ini(windows 2000인 경우)

설정예
query_cache_size = 0        (disable)
query_cache_size = 512K     (512 Kbytes)
query_cache_size = 10M      (10 Mbytes)


Query Cache와 관련된 명령어

flush query cache : query cache를 defragment
reset query cache : query cache를 clear
flush tables      : query cache를 flush
show status       : query cache 성능 모니터링

show status로 나온 변수중 query cache와 관련된 변수와 설명은 다음과 같다.
Qcache_queries_in_cache : 캐쉬내 등록된 쿼리수
Qcache_inserts          : 캐쉬에 추가된 쿼리수
Qcache_hits             : 캐쉬 히트수
Qcache_lowmem_prunes    : 메모리부족으로 인해 캐쉬로부터 삭제된 쿼리수
Qcache_not_cached       : 캐쉬되어지지 않은 쿼리수(query_cache_type으로 인한 경우나 캐쉬될수 없는 것일 경우)
Qcache_free_memory      : query cache의 free 메모리량
Qcache_total_blocks     : query cache가 가진 총블럭수
Qcache_free_blocks      : query cache가 가진 free 메모리 블럭수

총 쿼리수 = Qcache_inserts + Qcache_hits + Qcache_not_cached

Qcache_lowmem_prunes 변수값이 크다면 query cache 메모리가 부족하다는 의미이므로 query_cache_size를 늘여줄 필요가 있다.


query cache 되지 않는 경우

1. 질의가 다음의 함수를 포함할때
User-Defined Functions  
CONNECTION_ID  
FOUND_ROWS  
GET_LOCK  
RELEASE_LOCK  
LOAD_FILE  
MASTER_POS_WAIT  
NOW  
SYSDATE  
CURRENT_TIMESTAMP  
CURDATE  
CURRENT_DATE  
CURTIME  
CURRENT_TIME  
DATABASE  
ENCRYPT (with one parameter)  
LAST_INSERT_ID  
RAND  
UNIX_TIMESTAMP (without parameters)  
USER  
BENCHMARK  

2. mysql system database에 참조하거나 user variable을 포함할때

3. select ... in share mode이거나 select * from autoincrement_field is null 형태일때




This article comes from dbakorea.pe.kr (Leave this line as is)



출처 : http://www.superuser.co.kr, http://www.linux.co.kr/home/lecture/index.php?cateNo=3&secNo=16&theNo=46&leccode=340

List of Articles
번호 제목 글쓴이 날짜 조회 수
29 [MySQL] 데이터를 자기의 홈에 쌓이게 하는 방법 빛의바다 2011.05.27 5276
28 [MySQL] mysql 다중 서버 관리 빛의바다 2011.05.27 5042
27 [MySQL] High Performance MySQL Chapter 6: Server Performance Tuning 정리 빛의바다 2011.05.27 4513
» [MySQL] Query Cache 빛의바다 2011.05.27 4464
25 [MySQL] SQL서버 응응프로그램의 속도향상 빛의바다 2011.05.27 4734
24 PHP 가속기 Zend Optimizer, Turck MMCache for PHP, eAccelerator 빛의바다 2011.05.27 4421
23 Raid 구성의 요약 빛의바다 2011.05.27 4380
22 Redhat9에 yum 설치하기 빛의바다 2011.05.27 4602
21 Name server 운영하기 file 빛의바다 2011.05.27 4190
20 Apache rewrite Module file 빛의바다 2011.05.27 4270
19 트래픽 제한(접속당) 모듈 (mod_bandwidth) 설치 및 운영 file 빛의바다 2011.05.27 4292
18 트래픽 제한 모듈 (mod_throttle) 설치 및 운영 file 빛의바다 2011.05.27 4380
17 아파치 웹서버 보안 관리 file 빛의바다 2011.05.27 4370
16 아파치 설정팁들 file 빛의바다 2011.05.27 4288
15 아파치 웹서버 장애시 대처법 file 빛의바다 2011.05.27 4085
14 Apache 2.x 최적화 file 빛의바다 2011.05.27 4366
13 RedHat 9 설치후 기본 셋팅 file 빛의바다 2011.05.27 4172
12 MySQL DB복구방법 빛의바다 2011.03.03 4172
11 MySQL DB백업방법 빛의바다 2011.03.03 4504
10 squid로 프록시 서버 구축 file 빛의바다 2011.03.03 4668
Board Pagination Prev 1 2 Next
/ 2

JJUNES.COM

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소