Phoenix doesn’t support automatically using index on a non-covered query. Check 
out https://phoenix.apache.org/secondary_indexing.html for some examples. Your 
query may have been faster due to more data being cached.

The 2-step plan you’re looking for in this case looks more like this one where 
I used a hint to specify the index:
| CLIENT 40-CHUNK PARALLEL 40-WAY FULL SCAN OVER LOG |
|     SKIP-SCAN-JOIN TABLE 0               |
|         CLIENT 40-CHUNK PARALLEL 40-WAY FULL SCAN OVER LOG_REQUEST_IDX |
|             SERVER FILTER BY FIRST KEY ONLY AND "RQ" LIKE '/jquery%' |
|     DYNAMIC SERVER FILTER BY ("LOG.TS", "LOG.F", "LOG.R") IN (($707.$709, 
$707.$710, $707.$711)) |


From: Martin Pernollet [mailto:[email protected]]
Sent: Wednesday, July 01, 2015 6:06 AM
To: [email protected]
Subject: EXPLAIN has similar output for filters on indexed and non indexed 
column

Hi,

I want to perform :
SELECT * FROM "table" where "family"."column1" = 'value'

Running an EXPLAIN on this request before creating an index on a column gives :

CLIENT PARALLEL 1-WAY FULL SCAN OVER table
  SERVER FILTER BY family.column1 = 'value'

Looks OK.
Then I simply :
CREATE INDEX "table_IDX_column1" on "table" ("family"."column1");

Following requests using a filter on indexed column are definitely faster.

However, when running EXPLAIN again I have exactly the same output mentioning a 
full scan.

I am not familiar with Phoenix explain plan, but I would expect 1 GET on the 
index table, and then 1 get in my main table. Isn't it?

Reply via email to