티스토리 뷰

1. 쿼리 캐시란 ? 


" SQL 실행결과를 미리 특정 공간에 저장해 놓고, 다음번 같은 문장으로 호출시 빠르게 해당 결과를 보여주는 것 " 

(브라우저의 캐시개념으로 이해하면 될까)

(쿼리 구문을 파싱하여 저장하는것이 아니라, 쿼리 결과를 저장하는 것)


--------------------------------------

2. Query Cache 설정


MySQL 콘솔에서 


mysql> SHOW VARIABLES LIKE 'query_cache%';

+------------------------------+---------+

| Variable_name                | Value   |

+------------------------------+---------+

| query_cache_limit            | 1048576 |

| query_cache_min_res_unit     | 4096    |

| query_cache_size             | 1048576 |

| query_cache_type             | OFF     |

| query_cache_wlock_invalidate | OFF     |

+------------------------------+---------+

5 rows in set (0.00 sec)


를 치면 위와같은 결과물을 볼 수 있다.

현재 나의 DB는 쿼리캐시가 OFF 되어있는 상태.


query_cache_type : OFF


이걸.. Set Global 명령어로 ON 시킨 후 쿼리 캐시 파일 Size 등을 적절히 조절하여 이용할 수 있다.


--------------------------------------

3. Query Cache 사용시 주의점


아래 두 구문은 다르게 캐싱된다.

> SELECT * FROM a;

> select * from a;


따라서, 개발(쿼리 수행)단에서 쿼리문 대소문자를 통일하여 작업하는 것도 중요함.

(이렇게 될 경우 같은 양의 데이터가 두번 저장될 것이다. 공간 낭비?)



또, 캐싱된 쿼리 Result는 해당 table이 Update 되면 소멸된다.

(예를들어.. 5초 걸리는 쿼리문이 있다.

 >SELECT id, name FROM a; 

 이 쿼리는 수행하는데 5초가 걸린다. 그러나, 쿼리 캐시를 이용하면 아래와 같은 결과를 볼 수 있을 것이다.

 >SELECT id, name FROM a;

  xxx rows in set (5.00 sec)

 >SELECT id, name FROM a;

  xxx rows in set (0.00 sec)

 

 근데..여기서 테이블의 업데이트가 이루어진다.

 >UPDATE a name="이영우" WHERE id=22;

 업데이트 한 후 다시 SELECT 를 해보자.

 >SELECT id, name FROM a;

  xxx rows in set (5.00 sec)

 >SELECT id, name FROM a;

  xxx rows in set (0.00 sec)


  그럼.. 이전과 동일하게 첫 쿼리는 역시 5초가 걸린다.

 이는 해당 테이블의 쿼리 캐싱이 소멸되었다는 것을 말한다..maybe)


즉, 쿼리 캐시는 데이터의 변동이 적은 Table을 같은 구문으로 여러번 SELECT 할 필요가 있는경우 매우 좋은 기능인듯 하다!!



--------------------------------------

4. 테스트


 4-1. 테스트 결과 쿼리캐시는 하나의 연결에 대해서만 지원하는 듯 하다.

       쉘을 두개 열어서 각 5초 정도 걸리는 Select 쿼리문을 날렸다.

       A쉘에서 쿼리를 날렸을때 5초 정도 걸렸고, 마찬가지로 A 쉘에서 두번째 쿼리를 날렸을땐 쿼리캐시가 동작하여 0초 걸렸다.

       이때, B쉘에서 같은 쿼리를 날렸을때 5초가 걸리고 다시 두번째 부터 0초가 걸린다..

       따라서, 쿼리캐시는 하나의 쓰레드내에서 공유하는 것으로 보인다.















<즐거운 자동차 커뮤니티 잼카>


<즐거운 축구 커뮤니티 싸커라인>


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함