Cristóbal Ramos Merino Asked: 2020-04-01 09:53:28 +0800 CST2020-04-01 09:53:28 +0800 CST 2020-04-01 09:53:28 +0800 CST PostgreSQL 10.6:更改父表会阻止所有子表吗? 772 我想在近 74.000 个子表中添加一列。这些表几乎实时地不断地从公司的所有服务中插入和读取。如果我向父表添加一列,它将阻止 74.000 个表,还是一对一? postgresql inheritance 1 个回答 Voted Best Answer Laurenz Albe 2020-04-02T00:08:53+08:002020-04-02T00:08:53+08:00 只有在修改了所有子项后,才能完成向继承父项添加列。所以是的,您将不得不等到所有 74000 个表都被修改,并且ACCESS EXCLUSIVE所有表都会同时锁定。 我希望你设置max_locks_per_transaction的足够高,锁表可以容纳所有这些锁。在一个数据库中拥有 74000 个表是一个问题,而将它们全部放在继承层次结构中则是一个更大的问题。但这个问题出在数据库设计上。
只有在修改了所有子项后,才能完成向继承父项添加列。所以是的,您将不得不等到所有 74000 个表都被修改,并且
ACCESS EXCLUSIVE
所有表都会同时锁定。我希望你设置
max_locks_per_transaction
的足够高,锁表可以容纳所有这些锁。在一个数据库中拥有 74000 个表是一个问题,而将它们全部放在继承层次结构中则是一个更大的问题。但这个问题出在数据库设计上。