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操作需要较长时间,获取锁后仍会阻塞其他访问,需考虑如何优化处理。
➡️

继续阅读