数据库中的重型字段迁移优化(golang)
最近在数据迁移中的一些优化点,在这里分享一些,当然也不一定是最优的,欢迎讨论。
首先,在某些数据表中的字段,存着非常大的json数据。
并且有几十万行数据,需要更改json中的某个数组字段,追加一些元素。
常规方式
读取所有的行
json反序列化
修改数据
json序列号并保持到数据库
有几个问题
内存占用非常大,每行大概至少有8KB的数据,各种对象,内存申请,这个迁移程序可能会吃到数G的内存。
性能也不好,在读取数据库期间,其实是浪费了的
第二次优化
按每个团队划分,分别查询,内存降低...
mozz.in1 min read