Tenho script para criptografar colunas na tabela. >200 mil linhas. Em 100k está funcionando.
UPDATE table
SET col1 = TO_BASE64(AES_ENCRYPT(col1, @keyBase, @static_iv)),
col2 = TO_BASE64(AES_ENCRYPT(col2 , @keyBase, @static_iv))
Editar: reproduzi isso em um exemplo mais simples (> 200 mil registros):
UPDATE table
SET col1 = '1'
Plano A: Qual “Erro”? Provavelmente um limite de tempo. Essa é uma configuração que pode ser alterada.
Plano B: prefiro fazer atualizações massivas de 1.000 linhas por vez. A seguir é discutido como percorrer a tabela usando o
PRIMARY KEY
to doDELETEs
. Uma técnica semelhante funciona bem para `UPDATEs. https://mysql.rjweb.org/doc.php/deletebig#deleting_in_chunksPlano C: Faça a conversão enquanto copia a tabela. Isso será executado mais rápido que o
UPDATE
.UUIDs Se
PRIMARY KEY
for um UUID, então o método B precisa da solução de "grande lacuna" mencionada no link acima:encontra o milésimo item daqui.