繁体   English   中英

在表上触发(插入后)会减慢插入此表的速度

[英]Does trigger(after insert) on table slow down inserting into this table

我有一个大表( bo_sip_cti_event ),它太大了甚至不能对此运行查询所以我创建了相同的表( bo_sip_cti_event_day ),在bo_sip_cti_event上插入后添加了触发器以将所有相同的值添加到bo_sip_cti_event_day现在我在想是否我显着减慢了插入bo_sip_cti_event

所以一般来说,在这个表上插入减速操作后会触发吗?

是的,触发器必须减慢插入速度。

原因是关系数据库符合ACID :所有操作(包括触发器等副作用)必须在更新事务完成之前完成。 因此触发器必须同步执行,并且消耗CPU,在您的情况下也是I / O,最终需要更多时间。 没有绕过它。

答案是肯定的:它是额外的开销,因此显然需要时间来完成附加触发器执行的事务。

你的设计让我想知道:

  • 您探索了加速大表的所有选项。 如果您有适当的索引等,即使数十亿行也可以处理得非常好。 但这一切都取决于表格,设计,数据和查询。
  • 你的触发器到底在做什么。 表名“_day”提出了在午夜清理这个表的时间和地点以及如何准确的问题。 希望不在触发器功能内部,并希望不要使用“DELETE FROM”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM