mysql大批量替换字符串如何优化
由于系统域名变化,需要修改mysql数据库中的多个表的字段中的域名。
数据量特别大,首先表很多大概300+;其次每个表中的数据大约是50万条左右。找不到大批量替换字符串的语句优化方法。
目前我查到是mysql替换字符串语句为:
update test_table.content
set content= replace(content,'domain_name','domain_name_new');
但是这样直接执行速度特别慢,没有where条件也不好添加索引来提高效率。
就算是用content字段作为where条件来筛选修改范围,就会变成:
update test_table.content
set content= replace(content,'domain_name','domain_name_new')
where content like '%domain_name%';
首先like“%xxx”,无法使用索引。在这个content字段上加索引,然后又要修改该字段,反而会增加维护索引的时间。
还是找不到大批量替换字符串的语句优化方法。请各位大神帮忙看一下这种情况如何处理才能提高运行速度。
推荐文章: