比较 Scala PlayFramework 的 db.withConnection 和 db.withTransaction 方法对底层 postgres 数据库的影响

问题描述 投票:0回答:1
鉴于我需要在 Postgres 15 数据库上执行一个简单的 SQL 语句(例如:

select id from foo

),我很想知道使用 Play API 的 
db.withTransaction
 与使用 
db.withConnection
 执行它对性能的影响?

我认为前者会更昂贵,因为数据库需要启动事务,但我希望获得有关使用前者与后者的性能成本的更多详细信息。

postgresql scala playframework transactions anorm
1个回答
0
投票
根据 postgresql

docs

PostgreSQL 实际上将每条 SQL 语句都视为正在执行 在一笔交易内。如果您不发出 BEGIN 命令,则每个 单个语句具有隐式 BEGIN 和(如果成功)COMMIT 缠绕在它周围。由 BEGIN 和 包围的一组语句 COMMIT 有时被称为事务块。

所以,即使你不使用交易,它仍然会使用交易。话虽如此,我认为

withTransaction

 版本发出了更多语句,并且鉴于这只是一个简单的选择,我认为您可以使用 withConnection 版本并且永远不会回头。但是...您没有告诉我们这个 select 语句。你只是检查连接池的状态吗?或者您需要担心隔离级别吗?

© www.soinside.com 2019 - 2024. All rights reserved.