这个问题说明了一切。
示例:我打算对数据库表进行分片。该表包含标记为“活动”、“完成”和“已删除”的客户订单。我也有三个碎片,每个标志一个。
据我了解,当更改标志时,必须将一行移动到正确的分片。
我对吗?最好的方法是什么?可以使用触发器吗?
我考虑过不立即移动该行,而只是在一天/周/月结束时,但随后不确定,具有特定标志的行驻留在哪个分片中,并且必须始终对所有分片进行搜索。
编辑:一些澄清:
一般来说,我必须选择一个标准来决定一行所在的分片。在这种情况下,我希望它成为上面描述的标志,因为这是对此类数据进行分片的最自然方式。(在我看来)只有有限数量的活跃订单经常被访问。有大量已完成的订单,很少被访问,并且有非常大量的数据行几乎从未被访问过。
如果我想现在特定数据行所在的位置,我不必搜索所有分片。如果用户想要加载一个活动订单,我已经知道我必须查看哪个数据库。
现在,作为我的分片标准的标志发生了变化,我想知道处理这种情况的最佳方法。如果我只是将记录保留在其原始数据库中,最终所有数据都会累积在一个表中。