始终在 JDBI 中使用事务有什么重大缺点吗?

Is there any significant downside to just always using transactions in JDBI?

对于永远不会变得太大的表,仅使用 JdbiExecutor::executeInTransaction 而不是 JdbiExecutor::execute 有什么缺点吗?

我正在尝试简化一段非常大且复杂的代码,以便新开发人员可以更快地上手。如果性能没有显着差异(即便如此,在这里解决它也是过早的优化)那么我想编写一个始终使用 JdbiExecutor::executeInTransaction.

的实用程序

PostgreSQL 服务器以自动提交模式运行,因此使用显式事务不仅会导致 COMMIT 语句发送到数据库,还会导致 BEGIN 语句启动显式事务。

这意味着您每笔交易最多可以有 2 次额外的 client-server 往返。

仅当您需要将多个语句捆绑到一个事务中时才使用显式事务可能会提高您的性能。

我会 运行 一个简单的基准来查看影响是否明显;如果没有,请继续并简化您的代码。