我想在SnappyData中的两个表上进行并置连接,为了进一步加快连接速度,如果我也在两个表的连接列上创建索引,会有帮助吗?
更具体地说,这两个表将是相当大的,如果在大范围内它按成对的分区连接,并且在每一对分区中,索引嵌套循环连接可以被使用而不是简单的嵌套循环连接,这对我来说是非常理想的。
我无法找到这方面的例子或教程,任何解释或指针都将不胜感激。
提前感谢!
更新:
这两个表在#行方面很大,而且表中的列很少(3 -4列,所有整数类型):
`Table1(Col_A, Col_B), Table2(Col_B, Col_C)`,我想加入Table1 & Table2 on Col_B以获得类似的结果
Table3(Col_A, Col_B, Col_C), 因此,我更喜欢水平分区(使用行表)连接列Col_B上的两个连接表,而不是使用列表。并使用并置连接来减少数据洗牌。
即使在分区之后,分区可能仍然太大,因此我想知道是否可以在Col_B上独立地在每个分区中创建索引,并将其用于索引联接?在我看来,在SnappyData中,我只能在整个列上创建索引,而不能独立地为每个分区创建索引。
发布于 2017-03-21 21:53:12
你说数据很大。所以,最好使用列表。您试过用partition by/colocateWith子句创建表吗?
示例:表1:create table T1 (a1, a2, ...) using column partition_by 'a1'表2:create table T2 (a1, ax, ay ...) using column partition by 'a1' colocate_with 'T1'
然后,尝试查询并查看UI中的SQL物理计划(联接不应涉及洗牌)。让我们知道是怎么回事。
https://stackoverflow.com/questions/42937944
复制相似问题