<分区>
我想知道在表中每次插入后执行更新的触发器是否比在插入查询后手动执行更新查询慢。
<分区>
我想知道在表中每次插入后执行更新的触发器是否比在插入查询后手动执行更新查询慢。
最佳答案
就PostgreSQL而言:
一次插入/更新一行,几乎。虽然 - 不一定是因为@Michael 争论的网络开销 - 您可以将 INSERT
和 UPDATE
打包到单个查询中。考虑 writeable CTEs .
对于一次插入/更新多行或多行,是,它可能要慢得多。在单个命令中处理多行的成本要低得多,因此针对 x 行的一次更新比由触发器启动的 x 个单独更新要便宜得多。
不过,没有什么可以说是肯定的,因为还有许多其他因素在起作用。
我在引用 the manual here :
PostgreSQL offers both per-row triggers and per-statement triggers. With a per-row trigger, the trigger function is invoked once for each row that is affected by the statement that fired the trigger.
大胆强调我的。
关于sql - 数据库触发器比查询慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799290/