“ IN”指令如何影响Druid SQL请求?

Druid Documentation of the IN Filter没有提及效率。我们遇到了一条SQL语句不断超时的问题,我认为罪魁祸首是field IN (v,e,r,y,l,o,n,g,i,s,t,f,d,s)子句中的WHERE

是否存在有关Druid中IN过滤器效率的文档?如何使用它以及如何使用它?

我认为这是我们罪魁祸首的主要原因是因为IN列表中的元素列表可能非常大(成千上万个标识符),并且列表可能每天都在变化(增长)。增长幅度是一到两,三(我不太确定最大值是多少,我怀疑有些客户一天可能增加多达10个新商品),这些年来,对于某些商品来说,成千上万我们的客户。

我们可以使用JOIN或将WHERE转换为计算标识符列表。看起来像这样:

`WHERE ... object.customer_id = customer.id AND object.id = id ...`

我想知道Druid如何为我们聚合数据,以及当一个更简单的WHERE ...子句可能工作得更好并真正自动聚合结果时,IN过滤器是否会随着时间的推移而导致聚合问题。

我们的查询使用的时间设置为年初至今(因此介于1月1日和今天之间)。

hail1999 回答:“ IN”指令如何影响Druid SQL请求?

我认为首先检查druid生成哪种查询是明智的。

您可以做一个<Window x:Class="WpfAppAnimatedWindowMove.MainWindow" // [...] Name="myWindow"> 吗?

德鲁伊会为其生成哪种查询?您还可以提供这些数据吗?

我还注意到您没有在查询中指定explain plan for select .. WHERE ... object.customer_id = customer.id AND object.id = id ...过滤器。由于druid是一个时间序列数据库,因此您应始终尝试指定一个时间窗口来搜索其数据。如果您不指定它,它将需要遍历所有数据。

本文链接:https://www.f2er.com/3083909.html

大家都在问