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

the*_*aba 3 clickhouse

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

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

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

Iva*_*kov 5

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

  • 假设:在网站上注册的用户按注册时间排序的表格。每行包含用户的性别。WHERE genger='m' 比 PREWHERE sex='m' 效率更高。 (2认同)