我们有这对触发器和函数,我们在 psql 数据库上使用了最长时间。基本上,每次主表有新记录时都会调用触发器,并将每一行单独插入到每月分区中。以下是触发函数:
CREATE TRIGGER partition_mic_teams_endpoint_trg1
BEFORE INSERT ON "mic_teams_endpoint"
FOR EACH ROW EXECUTE
PROCEDURE trg_partition_mic_teams_endpoint('month');
我们的函数基于每行中的时间戳字段创建每月分区。
我有两个问题:
列表项即使我尝试将一堆行从 CSV 复制到主表,此触发器/函数是否会单独插入每一行?这有效率吗?
如果是这种情况,是否可以支持将数据复制到分区而不是插入。
谢谢,
注意:如果我没有提供足够的信息来回答,我很抱歉
是的,将分别为每一行调用行级触发器,这会使COPY
速度变慢。
您可以尝试的一件事是AFTER
使用转换表的语句级触发器,以便您可以
INSERT INTO destination SELECT ... FROM transition_table;
那应该更快,但您应该对其进行测试以确定。
有关详细信息,请参阅文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句