gpt4 book ai didi

database - 将数据行移动到另一个分片的最佳方式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:34 24 4
gpt4 key购买 nike

这个问题说明了一切。

示例:我打算对数据库表进行分片。该表包含标记为“事件”、“完成”和“已删除”的客户订单。我也有三个碎片,每个标志一个。

据我了解,当标志更改时,必须将一行移动到正确的分片。

我说的对吗?最好的方法是什么?可以使用触发器吗?

我考虑过不立即移动该行,而是仅在一天/一周/一个月的末尾移动,但随后不确定,其中具有特定标志的行位于哪个分片中,并且必须始终进行搜索所有分片。

编辑:一些说明:

一般来说,我必须选择一个条件来决定一行所在的分片。在这种情况下,我希望它成为上述标志,因为这是分片此类数据的最自然方式。 (在我看来)只有有限数量的活跃​​订单被频繁访问。有大量的已完成订单,很少被访问,还有大量的数据行几乎从未被访问过。

如果我现在想知道特定数据行所在的位置,我不必搜索所有分片。如果用户想要加载有效订单,我已经知道我必须在哪个数据库中查找。

现在,作为我的分片标准的标志发生了变化,我想知道处理这种情况的最佳方法。如果我只是将记录保存在其原始数据库中,最终所有数据都会累积在一个表中。

最佳答案

在我看来,将所有事件记录保存在单个分片中可能不是一个好主意。在这种分片策略中,所有 IO 都将在单个数据库实例上执行,而其他所有 IO 均未得到充分利用。

备用分片策略可以是使用某种哈希函数在分片之间分配新创建的行。这将允许

  • 快速查找行
  • 在所有分片实例上分配 IO。
  • 无需将数据从一个分片移动到另一个分片(除非您想增加分片的数量)。

关于database - 将数据行移动到另一个分片的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/294170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com