| 写法 | SELECT … PREWHERE cond WHERE cond2 |
|---|---|
| 优化开关 | optimize_move_to_prewhere 默认开启,自动把适合的条件搬到 PREWHERE |
| 限制 | PREWHERE 只能引用表中的列,不能引用 SELECT 中定义的别名或聚合结果 |
示例
示例
SELECT event_time, user_id, props
FROM events
PREWHERE event_type = 'click' AND event_date = today()
WHERE user_id > 0
LIMIT 100;
-- 查看执行计划,确认过滤是否前置
EXPLAIN indexes = 1
SELECT count() FROM events PREWHERE event_type = 'click';条件本身的高选择性最重要:先裁掉大比例数据,再读宽列,IO 才能明显下降。