0

我想在 SnappyData 中的两个表上进行并置连接,为了进一步加快连接速度,如果我还在两个表的连接列上创建索引会有所帮助吗?

更具体地说,这两个表会非常大,如果在大规模上它是成对分区连接,并且在每对分区中,可以使用索引嵌套循环连接代替天真的嵌套循环,这对我来说是理想的加入。

我无法找到这方面的示例或教程,任何解释或指示将不胜感激。

提前致谢!

更新:

这两个表在#rows 方面很大,并且表的列很少(3 - 4 列,所有整数类型):

`Table1(Col_A, Col_B), Table2(Col_B, Col_C)`,

我想加入并Table1获得类似的结果Table2Col_B

Table3(Col_A, Col_B, Col_C), 

因此,我更喜欢水平分区(使用行表)连接列上的两个连接表Col_B,而不是使用列表。并使用 co-located join 来减少数据混洗。

即使分区后,分区可能仍然太大,因此我想知道是否可以在每个分区中独立创建索引Col_B并将其用于索引连接?在我看来,在 SnappyData 中,我只能在整个列上创建索引,而不是为每个分区独立创建索引。

4

1 回答 1

0

你说数据很大。所以,最好使用列表。您是否尝试过使用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 物理计划(连接不应涉及随机播放)。让我们知道怎么回事。

于 2017-03-21T21:53:12.860 回答