为什么 clickhouse 同时具有 WHERE 和 PREWHERE 结构?

Why clickhouse have both WHERE and PREWHERE constructs?

我正在阅读文档,只是对下一个感到好奇:

PREWHERE 就像是 WHERE 的优化形式,它在过​​滤之前只读取必要的数据,然后根据这些信息为用户读取所有实际数据。

问题是为什么有两个关键字?尽可能使用 WHERE 而不是 PREWHERE 似乎是不合理的。在某些情况下,使用 WHERE 是更好的选择吗?

PREWHERE 是一种优化,即使您在查询中写入 WHERE 也会自动应用。如果您知道自己在做什么,单独的关键字允许手动调整此优化器行为。