query_cache_* 세션 설정
query_cache_* 세션 설정
이 페이지에서는 쿼리 캐시와 관련된 query_cache_* 세션 설정들을 다뤄요. 캐시 항목 압축, 서브쿼리 캐시, 최대 항목 수, 메모리 크기, 최소 쿼리 시간·실행 수, 비결정적 함수 처리, 사용자 간 공유, TTL 등을 제어해요. 이 설정들은 system.settings 테이블에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성돼요.
출처: 문서
본문
이 설정들은 system.settings에서 확인할 수 있으며 소스에서 자동 생성돼요.
query_cache_compress_entries
query cache의 항목을 압축해요. 쿼리 캐시의 메모리 소비를 줄이는 대신 캐시로의/으로부터의 삽입·읽기가 느려져요. 가능한 값:
-
0- 비활성화. -
1- 활성화.
query_cache_for_subqueries
켜면 서브쿼리 결과가 query cache에 기록되고 읽힐 수 있어요. 이를 통해 use_query_cache가 모든 서브쿼리로 전파될 수 있어요.
가능한 값:
-
0- 비활성화. -
1- 활성화.
query_cache_max_entries
현재 사용자가 query cache에 저장할 수 있는 최대 쿼리 결과 수예요. 0은 무제한을 의미해요.
가능한 값:
>= 0양의 정수.
query_cache_max_size_in_bytes
현재 사용자가 query cache에 할당할 수 있는 최대 메모리(바이트)예요. 0은 무제한을 의미해요.
가능한 값:
>= 0양의 정수.
query_cache_min_query_duration
그 결과가 query cache에 저장되기 위해 쿼리가 실행되어야 하는 최소 시간(밀리초)이에요. 가능한 값:
>= 0양의 정수.
query_cache_min_query_runs
그 결과가 query cache에 저장되기 전에 SELECT 쿼리가 실행되어야 하는 최소 횟수예요.
가능한 값:
>= 0양의 정수.
query_cache_nondeterministic_function_handling
query cache가 rand()나 now() 같은 비결정적 함수가 있는 SELECT 쿼리를 어떻게 처리할지 제어해요.
가능한 값:
-
throw- 예외를 던지고 쿼리 결과를 캐시하지 않아요. -
save- 쿼리 결과를 캐시해요. -
ignore- 쿼리 결과를 캐시하지 않고 예외도 던지지 않아요.
query_cache_share_between_users
켜면 query cache에 캐시된 SELECT 쿼리 결과를 다른 사용자가 읽을 수 있어요.
보안상의 이유로 이 설정을 활성화하는 것은 권장되지 않아요.
가능한 값:
-
0- 비활성화. -
1- 활성화.
query_cache_squash_partial_results
부분 결과 블록을 max_block_size 크기의 블록으로 압축(squash)해요. query cache로의 삽입 성능을 줄이지만 캐시 항목의 압축성을 개선해요(query_cache_compress_entries 참고). 가능한 값:
-
0- 비활성화. -
1- 활성화.
query_cache_system_table_handling
query cache가 시스템 테이블, 즉 system.*과 information_schema.* 데이터베이스의 테이블에 대한 SELECT 쿼리를 어떻게 처리할지 제어해요.
가능한 값:
-
throw- 예외를 던지고 쿼리 결과를 캐시하지 않아요. -
save- 쿼리 결과를 캐시해요. -
ignore- 쿼리 결과를 캐시하지 않고 예외도 던지지 않아요.
query_cache_tag
query cache 항목의 라벨 역할을 하는 문자열이에요. 태그가 다른 동일한 쿼리는 쿼리 캐시에서 서로 다른 것으로 간주돼요. 가능한 값:
- 임의의 문자열.
query_cache_ttl
이 시간(초)이 지나면 query cache의 항목이 오래된 것으로 간주돼요. 가능한 값:
>= 0양의 정수.