Phoenix 如何翻译 IN 子句?
How does Phoenix translate IN clause?
Apache 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。
所以是的,如果我们谈论体面的数据量,这两个语句之间似乎存在显着的性能差异。
Apache 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。
所以是的,如果我们谈论体面的数据量,这两个语句之间似乎存在显着的性能差异。