我有脚本来加密表中的列。>200k 行。在 100k 上它的工作。
UPDATE table
SET col1 = TO_BASE64(AES_ENCRYPT(col1, @keyBase, @static_iv)),
col2 = TO_BASE64(AES_ENCRYPT(col2 , @keyBase, @static_iv))
编辑:我在更简单的示例(>200k 记录)上重现了这一点:
UPDATE table
SET col1 = '1'
我有脚本来加密表中的列。>200k 行。在 100k 上它的工作。
UPDATE table
SET col1 = TO_BASE64(AES_ENCRYPT(col1, @keyBase, @static_iv)),
col2 = TO_BASE64(AES_ENCRYPT(col2 , @keyBase, @static_iv))
编辑:我在更简单的示例(>200k 记录)上重现了这一点:
UPDATE table
SET col1 = '1'
A计划:什么“错误”?应该是有时间限制吧 这是一个可以更改的设置。
计划 B:我更喜欢一次进行 1000 行的大规模更新。
PRIMARY KEY
下面讨论如何使用to do遍历表DELETEs
。类似的技术对于“更新”也很有效。https://mysql.rjweb.org/doc.php/deletebig#deleting_in_chunks计划 C:在复制表格的同时进行转换。这将比
UPDATE
.UUID如果
PRIMARY KEY
是 UUID,则方法 B 需要上面链接中提到的“大间隙”解决方案:因此找到第千项。