首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用辅助分片键对Vistess进行分片

是否可以使用辅助分片键对Vistess进行分片
EN

Stack Overflow用户
提问于 2020-04-21 21:18:18
回答 1查看 85关注 0票数 2

我们使用Vitess数据库来缩放并在mysql中实现水平分片。是否有可能在Vitess中进行第二次分片。

例如:Table 1 - Agency ( AgencyID INT, CreatedOn DATETIME )

Table 2 - PayrollDetails ( AgencyID INT FOREIGN KEY TO Agency Table, PayrollID INT, PayrollCreatedOn DATETIME )

现在,我们使用AgencyID作为分片键对这两个表进行分片。但是PayrollDetails表非常大,它有超过1亿条记录。所以现在我们计划用PayrollCreatedOn字段重新分片PayrollDetails表,两个表的主分片都应该用代理键,但是payrollDetails表应该用AgencyID和PayrollCreatedOn.How来分片,我们能在Vitess中实现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-25 03:51:43

从概念上讲,分片键(主vindex)用于决定行转到哪个分片。因此,不可能有两个分片键,因为它们会指示行的冲突位置。

如果我理解正确的话,您希望在where子句中使用PayrollCreatedOn查询表,您可以创建一个辅助Vindex。这将创建一个指向行所在位置的查找表,Vitess可以利用这一点。这里有一个解释:https://vitess.io/docs/reference/vindexes/。有一个名为CreateLookupVindex的新命令能够回填此查找表。然而,它还没有被记录下来。

Vitess还允许您通过使用不同的主vindex来“具体化”一个表。在这种情况下,第二个表将是第一个表的实时副本,但以不同的方式进行分片。你可以在vitess的首页(向下滚动到视频)上看到这方面的演示。

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

https://stackoverflow.com/questions/61344529

复制
相关文章

相似问题

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