我们目前将数据存储到Redis中,用于临时聚合,并且有一个worker可以批量插入Postgres。有没有一种方法可以在单个插入事务中跨多个模式进行批量插入?这将消除在Redis中聚合内容的需要。或者,有没有更好的方法来聚合请求?
提前感谢您的帮助。
发布于 2020-09-03 22:35:42
这真的取决于你对“单次插入事务”的理解。
一条INSERT语句只能影响一个特定表。但是,您仍然可以对事务执行BEGIN (取决于实现),在其中执行所有的INSERT,然后对事务执行COMMIT。这仍然比在许多事务上执行所有INSERT更有效,因为它避免了多余的“握手”。
发布于 2020-09-04 04:50:02
您是否尝试过创建引用两个表的可更新视图,然后在此视图中进行大容量插入?
发布于 2020-09-04 05:06:03
你在找这样的东西吗?
with data (c1, c2) as (
values (1,2),(10,20),(30,40)
), s1_insert as (
insert into schema_one.table_1(c1, c2)
select c1, c2
from data
)
insert into schema_two.table_2(col1, col2)
select c1, c2
from data;https://stackoverflow.com/questions/63584604
复制相似问题