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日和今天之间)。