diff --git a/cameleer3-server-app/src/main/resources/clickhouse/V11__route_diagrams_projection.sql b/cameleer3-server-app/src/main/resources/clickhouse/V11__route_diagrams_projection.sql index 64240f25..18d57a65 100644 --- a/cameleer3-server-app/src/main/resources/clickhouse/V11__route_diagrams_projection.sql +++ b/cameleer3-server-app/src/main/resources/clickhouse/V11__route_diagrams_projection.sql @@ -1,6 +1,9 @@ -- Projection for fast route_id + instance_id lookups on route_diagrams. -- The primary key is (tenant_id, content_hash) which serves hash-based lookups. -- Queries filtering by route_id + instance_id were scanning millions of rows. +-- ReplacingMergeTree requires deduplicate_merge_projection_mode to be set (ClickHouse 24.12+). +ALTER TABLE route_diagrams MODIFY SETTING deduplicate_merge_projection_mode = 'drop'; + ALTER TABLE route_diagrams ADD PROJECTION IF NOT EXISTS prj_route_instance (SELECT content_hash, created_at ORDER BY tenant_id, route_id, instance_id, created_at);