Phoenix 如何翻译 IN 子句?

How does Phoenix translate IN clause?

A​​pache Phoenix 在执行如下查询之间是否存在性能差异: SELECT * FROM Table WHERE Column IN ('A')SELECT * FROM Table WHERE Column = 'A'?

同样的问题:SELECT * FROM Table WHERE Column IN ('A','B')SELECT * FROM Table WHERE Column = 'A' OR Column = 'B'

如果是:
SELECT * FROM Table WHERE Column IN ('A','B')
它使用 java 设置在 hoot 下。所以时间复杂度是O(1)。有关详细信息,请参阅 InListExpression

如果是:
SELECT * FROM Table WHERE Column = 'A' OR Column = 'B'
它在引擎盖下使用线性比较。所以时间复杂度如果是O(n)。有关详细信息,请参阅 OrExpression

所以是的,如果我们谈论体面的数据量,这两个语句之间似乎存在显着的性能差异。