[
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)