在 MySQL 中执行 ALTER TABLE 语句时,整个表在语句执行期间被读锁定(允许并发读取,但禁止并发写入)。如果它是一个大表,则 INSERT 或 UPDATE 语句可能会被阻塞很长时间。有没有办法进行“热更改”,例如添加一列以使表在整个过程中仍可更新?
大多数情况下,我对 MySQL 的解决方案感兴趣,但如果 MySQL 做不到,我会对其他 RDBMS 感兴趣。
澄清一下,我的目的只是为了避免在需要额外表列的新功能被推送到生产环境时出现停机。任何数据库模式都会随着时间而改变,这是不争的事实。我不明白为什么我们应该接受这些变化必然会导致停机。那只是虚弱。