ignore(무시) 관련 설정

ignore(무시) 관련 설정

특정 데이터 스킵핑 인덱스, DROP 쿼리, FORMAT Null, 머티리얼라이즈드 뷰 등을 무시하도록 제어하는 설정들이에요. 실제로 사용된 인덱스를 무시하는 동작을 확인하거나 테스트하기 위한 용도로 활용돼요. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

ignore_cold_parts_seconds

ClickHouse Cloud에서만 효과가 있어요. 새 데이터 파트를 pre-warm되거나(cache_populated_by_fetch 참조) 이 초수만큼 오래되기 전까지 SELECT 쿼리에서 제외해요. Replicated-/SharedMergeTree에만 해당돼요.

ignore_data_skipping_indices

지정된 스킵핑 인덱스가 쿼리에서 사용되더라도 이를 무시해요.

다음 예를 생각해 보세요:

CREATE TABLE data
(
    key Int,
    x Int,
    y Int,
    INDEX x_idx x TYPE minmax GRANULARITY 1,
    INDEX y_idx y TYPE minmax GRANULARITY 1,
    INDEX xy_idx (x,y) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

INSERT INTO data VALUES (1, 2, 3);

SELECT * FROM data;
SELECT * FROM data SETTINGS ignore_data_skipping_indices=''; -- CANNOT_PARSE_TEXT 오류 발생
SELECT * FROM data SETTINGS ignore_data_skipping_indices='x_idx'; -- 정상
SELECT * FROM data SETTINGS ignore_data_skipping_indices='na_idx'; -- 정상

SELECT * FROM data WHERE x = 1 AND y = 1 SETTINGS ignore_data_skipping_indices='xy_idx',force_data_skipping_indices='xy_idx' ; -- xy_idx가 명시적으로 무시되어 INDEX_NOT_USED 오류 발생
SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';

어떤 인덱스도 무시하지 않는 쿼리:

EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2;

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
      Skip
        Name: xy_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0

xy_idx 인덱스를 무시한 경우:

EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0

MergeTree 계열의 테이블에서 작동해요.

ignore_drop_queries_probability

활성화하면 서버가 지정된 확률로 모든 DROP 테이블 쿼리를 무시해요(Memory와 JOIN 엔진에서는 DROP을 TRUNCATE로 대체). 테스트 목적으로 사용돼요.

ignore_format_null_for_explain

활성화하면 EXPLAIN 쿼리에 대해 FORMAT Null이 무시되고 기본 출력 형식이 대신 사용돼요. 비활성화하면 FORMAT Null이 있는 EXPLAIN 쿼리는 출력이 없어요(하위 호환 동작).

ignore_materialized_views_with_dropped_target_table

뷰로 푸시하는 동안 대상 테이블이 삭제된 MV를 무시해요.

더 알아보기 (Learn more)