Hubert 'depesz' Lubaczewski:如何在不影响应用程序的情况下ALTER表?
💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
ALTER TABLE操作可能导致Access Exclusive锁,影响其他事务。可通过DO块和存储过程设置锁超时并重试,以减少等待时间,从而在不阻塞其他查询的情况下执行ALTER TABLE。
🎯
关键要点
- ALTER TABLE操作可能导致Access Exclusive锁,影响其他事务。
- 可以通过DO块和存储过程设置锁超时并重试,以减少等待时间。
- 短期锁定通常不会造成太大问题,但长时间运行的事务会导致ALTER TABLE等待。
- 解决方案是限制等待时间,如果获取锁失败,则停止尝试,稍作等待后重试。
- 可以使用DO块来实现锁超时和重试机制。
- 创建存储过程以简化ALTER TABLE操作的执行,减少重复代码。
- 如果ALTER TABLE操作需要较长时间,获取锁后仍会阻塞其他访问,需考虑如何优化处理。
🏷️
标签
➡️