将列添加到MyISAM表时,MySQL将创建>复制>删除>重命名.我有一个足够大的表,它不能在服务器的剩余可用空间中复制.尝试添加列会导致磁盘填充.时间不是问题,表可用性也不是磁盘空间.
如果没有将数据复制到另一台服务器,截断,更改和复制,是否有办法将列添加到MyISAM表而不创建临时表并复制所有数据?
您可以创建一个新的空表,手动将数据分块移动(插入新表,从旧表中删除一定数量的行),删除旧表并重命名新表。本质上与 MySQL 的作用相同,但是移动数据而不是复制数据,这应该可以让您使用更少的空间。