[ 
https://issues.apache.org/jira/browse/PHOENIX-852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14103834#comment-14103834
 ] 

Maryann Xue commented on PHOENIX-852:
-------------------------------------

Think it will be ok. My only concern is when there are too many key values, and 
each value will be wrapped as a LiteralExpression to construct a 
InListExpression, there might be too much object creation overhead; or if the 
key space is pretty cover by those values, the point lookup would be 
unnecessary but introducing more overhead. So don't know if it would be safest 
just to disable it by default? The current algorithm, if no hint is present, is 
to turn on this optimization when the RHS has filters (say, in general cases, 
has where clauses). For example, like: select * from A join B on A.id = B.id 
where B.b = 'x' .

> Optimize child/parent foreign key joins
> ---------------------------------------
>
>                 Key: PHOENIX-852
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-852
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: Maryann Xue
>         Attachments: PHOENIX-852.patch
>
>
> Often times a join will occur from a child to a parent. Our current algorithm 
> would do a full scan of one side or the other. We can do much better than 
> that if the HashCache contains the PK (or even part of the PK) from the table 
> being joined to. In these cases, we should drive the second scan through a 
> skip scan on the server side.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to