gpt4 book ai didi

database - 长期大量交易不好吗

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:43 26 4
gpt4 key购买 nike

你好,

我正在编写一个数据库应用程序,它使用伪造的serialisable 隔离级别(快照隔离)进行大量插入和更新。

为了避免大量的网络往返,我使用 PreparedStatement 在一个事务中批量插入和更新。它们应该很少失败,因为插入是预先检查的并且几乎与其他事务没有冲突,所以回滚不会经常发生。

拥有大事务应该对 WAL 有利,因为它可以刷新大块并且不必为小事务刷新。

1.) 我只能看到大交易的积极影响。但我经常读到它们很糟糕。为什么它们在我的用例中可能不好?

2.) 当local snapshots 合并回真实数据库时,检查冲突是否如此昂贵?数据库将不得不比较所有可能冲突的写集(并行事务)。或者它做一些高速捷径?还是很便宜?

[EDIT] 如果有人可以清楚地说明快照隔离数据库如何检查时间线上有重叠部分的事务是否被检查为不连续的写集,这可能会很有趣。因为这就是伪造的可序列化隔离级别的意义所在。

最佳答案

这里的真正问题有两个。第一个可能的问题是膨胀。大型事务可能会导致大量死元组同时出现。另一个可能的问题来自长时间运行的事务。只要长时间运行的事务在运行,它所接触的表就无法被清空,因此也会收集大量死元组。

我会说只需使用 check_postgresql.pl 来检查膨胀问题。只要您在长时间交易后没有看到大量的表格膨胀,就可以了。

关于database - 长期大量交易不好吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com