Postgresql 如何优化这一点:许多Postgres触发器在一个事务中调用相同的函数
我的一个数据库表中有一个缓存字段,它会根据许多不同的表以及这些表中字段的状态进行更新 这些表中的每一个都通过一个触发器调用相同的函数:updateCachedField(basetable_id INTEGER)。updateCachedField函数查询所有其他表,并计算基表的新缓存值。updateCachedField函数非常复杂,成本非常高 在单个事务期间,影响缓存字段的许多表都可能被更改。因此,在单个事务中,updateCachedField函数可能会被调用50次。。。但只有5个不同的基表idPostgresql 如何优化这一点:许多Postgres触发器在一个事务中调用相同的函数,postgresql,triggers,Postgresql,Triggers,我的一个数据库表中有一个缓存字段,它会根据许多不同的表以及这些表中字段的状态进行更新 这些表中的每一个都通过一个触发器调用相同的函数:updateCachedField(basetable_id INTEGER)。updateCachedField函数查询所有其他表,并计算基表的新缓存值。updateCachedField函数非常复杂,成本非常高 在单个事务期间,影响缓存字段的许多表都可能被更改。因此,在单个事务中,updateCachedField函数可能会被调用50次。。。但只有5个不同的基
是否有办法对此进行优化,使updateCachedField函数只被调用5次而不是50+?我认为最好的选择是使用基于xmin值或其他信息的可延迟约束触发器和查询。实际上,您也可以复制“日志”数据,以便在其他地方进行快照 如果没有清晰的信息,就无法真正了解您所看到的内容,但一种选择是基本上有三组表: