現在のセッションで定義された仮想的な (what-if) スキップ索引をすべて一覧表示します。CREATE HYPOTHETICAL INDEX および EXPLAIN WHATIF を参照してください。
内容はセッション単位です。各接続から見えるのは自身の仮想的な索引だけであり、現在のセッションで索引が作成されていない場合、このテーブルは空です。
現在の (database, table) はクエリ時に UUID によって解決されるため、RENAME TABLE が反映され、削除されたテーブルのエントリは自動的に非表示になります。
カラム
database(String) — データベース名table(String) — テーブル名name(String) — 索引名type(String) — 索引タイプ (minmax、set、bloom_filter など)type_full(String) — 引数を含む索引タイプ式 (例: bloom_filter(0.01))expression(String) — 索引式granularity(UInt64) — 索引粒度
例
CREATE HYPOTHETICAL INDEX i1 ON t (b) TYPE bloom_filter(0.01) GRANULARITY 1;
CREATE HYPOTHETICAL INDEX i2 ON t (b) TYPE bloom_filter(0.001) GRANULARITY 1;
SELECT database, table, name, type, type_full, expression, granularity
FROM system.hypothetical_indexes;┌─database─┬─table─┬─name─┬─type─────────┬─type_full───────────┬─expression─┬─granularity─┐
│ default │ t │ i1 │ bloom_filter │ bloom_filter(0.01) │ b │ 1 │
│ default │ t │ i2 │ bloom_filter │ bloom_filter(0.001) │ b │ 1 │
└──────────┴───────┴──────┴──────────────┴─────────────────────┴────────────┴─────────────┘type は基本となる型名で、type_full には引数が含まれるため、bloom_filter(0.01) と bloom_filter(0.001) のようなパラメータ化されたバリアントを区別できます。