我知道使用 NDB 你不能做大的事务,如果你做数据节点可以重新启动到只读模式和损坏的表。
我需要将记录复制到一个新表中,但问题是该表在暂存中包含数百万行,实时服务器甚至是该数量的 10 倍。
我怎样才能将我的副本分成更小的事务,这样我就不会杀死我的服务器?
我知道使用 NDB 你不能做大的事务,如果你做数据节点可以重新启动到只读模式和损坏的表。
我需要将记录复制到一个新表中,但问题是该表在暂存中包含数百万行,实时服务器甚至是该数量的 10 倍。
我怎样才能将我的副本分成更小的事务,这样我就不会杀死我的服务器?
ndb_move_data听起来像您正在寻找的东西。
如果您正在处理较大的交易,您可以增加
MaxNoOfConcurrentOperations
. 默认值为 32k,因此在一个两节点集群中,这意味着一次只能有大约 64k 行参与事务。但在 NDB 集群中,无论如何建议使用较小的事务。最简单的方法通常是使用
LIMIT
子句。