SnappyData与索引

时间:2017-03-21 20:54:23

标签: join indexing snappydata

我想在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上水平分区(使用行表)两个连接表,而不是使用列表。并使用共存联接来减少数据混乱。

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

1 个答案:

答案 0 :(得分: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物理计划(联接不应涉及随机播放)。让我们知道怎么回事。