查询结果缓存
- RFC PR: datafuselabs/databend#10014
- Tracking Issue: datafuselabs/databend#10011
概要
支持查询结果缓存,以加快查询响应速度。
动机
对于一些数据不经常更改的开销大的查询,我们可以缓存结果以加快查询响应速度。对于具有相同底层数据的相同查询,我们可以直接返回缓存的结果,从而大大提高查询效率。
例如,如果我们想每 10 秒执行以下查询以获取销量排名前 5 的产品:
SELECT product, count(product) AS sales_count
FROM sales_log
GROUP BY product
ORDER BY sales_count DESC
LIMIT 5;
如果我们每次都执行完整的查询流水线,成本可能非常高,但结果非常小(5 行)。由于 sales_log
的数据可能不会经常更改,我们可以缓存查询结果,并直接为同一查询返回缓存的结果。