Я подозреваю, что ваше узкое место не является вычислением. Для обновления нескольких миллионов записей определенно требуется несколько часов.
Если это так, вы можете написать настраиваемую функцию в c / c ++ для MySQL и выполнить функцию в хранимой процедуре.
Мы делаем это в нашей базе данных, чтобы повторно зашифровать некоторые чувствительные поля во время ротации ключей. Время вращения клавиш сократилось с дней до часов. Тем не менее, очень сложно поддерживать свою собственную копию MySQL. Мы искали альтернативы, но ничто не близко к эффективности этого подхода.