fix: refactor pgkv using prepare_cache about 10% better (#5497)

fix: refactor pgkv using prepare_cache about 15% better

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
This commit is contained in:
yihong
2025-02-10 11:59:18 +08:00
committed by GitHub
parent ccb1978c98
commit c100a2d1a6

View File

@@ -55,14 +55,25 @@ impl PgQueryExecutor<'_> {
params: &[&(dyn ToSql + Sync)],
) -> Result<Vec<tokio_postgres::Row>> {
match self {
PgQueryExecutor::Client(client) => client
.query(query, params)
.await
.context(PostgresExecutionSnafu { sql: query }),
PgQueryExecutor::Transaction(txn) => txn
.query(query, params)
.await
.context(PostgresExecutionSnafu { sql: query }),
PgQueryExecutor::Client(client) => {
let stmt = client
.prepare_cached(query)
.await
.context(PostgresExecutionSnafu { sql: query })?;
client
.query(&stmt, params)
.await
.context(PostgresExecutionSnafu { sql: query })
}
PgQueryExecutor::Transaction(txn) => {
let stmt = txn
.prepare_cached(query)
.await
.context(PostgresExecutionSnafu { sql: query })?;
txn.query(&stmt, params)
.await
.context(PostgresExecutionSnafu { sql: query })
}
}
}