首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SnappyData联合索引

SnappyData联合索引
EN

Stack Overflow用户
提问于 2017-03-21 20:54:22
回答 1查看 88关注 0票数 0

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

更具体地说,这两个表将是相当大的,如果在大范围内它按成对的分区连接,并且在每一对分区中,索引嵌套循环连接可以被使用而不是简单的嵌套循环连接,这对我来说是非常理想的。

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

提前感谢!

更新:

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

代码语言:javascript
复制
`Table1(Col_A, Col_B), Table2(Col_B, Col_C)`,

我想加入Table1 & Table2 on Col_B以获得类似的结果

代码语言:javascript
复制
Table3(Col_A, Col_B, Col_C), 

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

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

EN

回答 1

Stack Overflow用户

发布于 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物理计划(联接不应涉及洗牌)。让我们知道是怎么回事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42937944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档