Optimizing performance for evaluating SQL predicates
If the WHERE
clause of your query
includes comparisons with the operators =
,
<=
, <
, >
, >=
, BETWEEN
, or IN
, Kudu evaluates the condition directly and only returns the relevant results.
This provides optimum performance, because Kudu only returns the relevant results to Impala.
For predicates such as !=
, LIKE
, or any other
predicate type supported by Impala, Kudu does not evaluate the predicates directly.
Instead, it returns all results to Impala and relies on Impala to evaluate the
remaining predicates and filter the results accordingly. This may cause differences in
performance, depending on the delta of the result set before and after evaluating the
WHERE
clause. In some cases, creating and periodically updating
materialized views may be the right solution to work around these inefficiencies.