0
我有一个包含20,085,250行的表,并且某个人让\ n,\ r和\ 0在表格中间混合。只需要10秒钟就可以做SELECT count(*)FROM Table,所以它非常庞大。Mysql删除换行符,空字符和LineFeed QUICKLY
我需要将所有这些字符全部替换为空。我已经能够在2.5年内用一列完成这项工作。我有10列,我需要做到这一点,它是在生产服务器上,我不能让表锁定在更新查询为2.5年。我当前的查询看起来像这样
UPDATE Table set `column1` = REPLACE(REPLACE(REPLACE(`column1`, '\r', ''), '\n', ''), '\0', '');
有没有人有任何好主意如何加速这个庞然大物?
您可以通过使用WHERE条件将更新的行限制为行的特定子集来递增式地执行此操作。例如:'id BETWEEN 1 AND 1000000',然后是'id BETWEEN 1000001 AND 2000000',等等......虽然,如果你期待这个数据清理能够加快'SELECT COUNT(*)'查询的速度,我想你'我会失望的。 – Uueerdo
不,我不想加快计数只是加快更新 –
也许这是我唯一的选择? –