我的数据库模式中有一个BLOB列,我不再需要它了。我需要把这个从我的生产服务器上删除。我在运行MYSQL-5.6
在我的开发版本上测试这一点表明,运行大约需要1.5小时。现在,对于我们来说,为了维护而使生产数据库瘫痪那么长时间是不可行的。我分批做这件事的最好方法是什么?例如,我一次可以在桌子上获得5-10分钟的写锁,而不会造成任何生产故障。
我没有DB管理员的背景,所以我希望这不是其他地方讨论的一个真正的基本问题。
发布于 2016-11-21 21:02:23
我认为以下线程可能对您有用:从大型表中删除MySQL列
建议将数据复制到一个新表中,减去希望丢失的列,然后删除旧表并重命名新表。这是如果你不能确保一个维护窗口,比如说隔夜/停工时间,来代替这个工作。
根据我的理解--以及其他人,如果我错了,请纠正我--尽管您可以批量清除/空该列中的数据,但您不能批量删除该列,因为列删除意味着在没有该列的情况下重写行--而且您不能在没有其他行的属性列的表中有一行。
https://dba.stackexchange.com/questions/155922
复制相似问题