DROP TABLE IF EXISTS perf_lc_str CREATE TABLE perf_lc_str( str LowCardinality(String), arr Array(LowCardinality(String)) default [str] ) ENGINE = MergeTree() ORDER BY tuple() INSERT INTO perf_lc_str (str) SELECT concat('asdf', toString(number % 10000)) FROM numbers(100000000) SELECT count() FROM perf_lc_str WHERE str = 'asdf337' SELECT count() FROM perf_lc_str WHERE arr[1] = 'asdf337' SELECT count() FROM perf_lc_str WHERE has(arr, 'asdf337') SELECT count() FROM perf_lc_str WHERE indexOf(arr, 'asdf337') > 0 SELECT count() FROM perf_lc_str WHERE arr[1] = str SELECT count() FROM perf_lc_str WHERE has(arr, str) SELECT count() FROM perf_lc_str WHERE indexOf(arr, str) > 0 SELECT count() FROM perf_lc_str WHERE has(arr, concat('0', str)) SELECT count() FROM perf_lc_str WHERE has(arr, concat(str, 'str')) SELECT count() FROM perf_lc_str WHERE has(arr, concat(str, '0')) DROP TABLE IF EXISTS perf_lc_str