left join30万行数据的问题
有一张表(innodb)有30万行数据,现在需要对表增加几个字段,但是因为数据量大,直接修改表结构会导致锁表。影响服务。服务不能停。
所以目前考虑是另做一个新表(老表+新增的字段),然后程序上对新老两表同时做写操作,读仍然是读老表数据(因为老表数据是100%完整)。
然后将老表数据和新表数据的差分copy到新表后(新表数据就完整了),读写就都改到新表。老表即可作废。(实际上差分找出后,还得去查另一个表找到相应数据再插入到新表中。)
现在问题是在做新老两表差分时我用的是left join。差分数据应该有30万条。这样会不会消耗太多内存? 以及整个流程有没有更好的解决方案?