为啥 clickhouse 同时具有 WHERE 和 PREWHERE 构造?
Posted
技术标签:
【中文标题】为啥 clickhouse 同时具有 WHERE 和 PREWHERE 构造?【英文标题】:Why clickhouse have both WHERE and PREWHERE constructs?为什么 clickhouse 同时具有 WHERE 和 PREWHERE 构造? 【发布时间】:2019-05-03 21:33:37 【问题描述】:我正在阅读文档,只是对下一步感到好奇:
PREWHERE 就像 WHERE 的优化形式,它在过滤之前只读取必要的数据,然后使用这些信息为用户读取所有实际数据。
问题是为什么存在两个关键字?尽可能使用 WHERE 而不是 PREWHERE 似乎是不合理的。是否有任何情况下使用 WHERE 是更好的选择?
【问题讨论】:
【参考方案1】:PREWHERE 是一种优化,即使您在查询中编写 WHERE 也会自动应用。如果您知道自己在做什么,单独的关键字允许手动调整此优化器行为。
【讨论】:
WHERE 比 PREWHERE 更好时,您能举出具体的例子吗? 假设:在网站上注册的用户按注册时间排序的表格。每行包含用户的性别。 WHERE genger='m' 会比 PREWHERE gender='m' 更有效。以上是关于为啥 clickhouse 同时具有 WHERE 和 PREWHERE 构造?的主要内容,如果未能解决你的问题,请参考以下文章