knex.transaction() 内部发生了什么
What happens internally on knex.transaction()
我想为每个传入请求从中间件向我的请求参数添加一个 knex 事务。
knex.transaction() 的性能如何?它会做一些昂贵的事情,比如打开数据库连接吗?
提前致谢! :)
Knex交易火热开启。因此,当您调用 knex.transaction
时,它会立即从池中保留数据库连接,即使您没有向那里发送任何查询。
此外,如果您正在创建隐式打开的事务,请记住确保它会被提交/回滚。否则他们会在请求被处理并填满连接池后保持存活。
因此,您可以考虑公开 req.trx()
中间件,而不是总是打开事务,这将在您第一次调用它时懒惰地创建单例事务...
我想为每个传入请求从中间件向我的请求参数添加一个 knex 事务。
knex.transaction() 的性能如何?它会做一些昂贵的事情,比如打开数据库连接吗?
提前致谢! :)
Knex交易火热开启。因此,当您调用 knex.transaction
时,它会立即从池中保留数据库连接,即使您没有向那里发送任何查询。
此外,如果您正在创建隐式打开的事务,请记住确保它会被提交/回滚。否则他们会在请求被处理并填满连接池后保持存活。
因此,您可以考虑公开 req.trx()
中间件,而不是总是打开事务,这将在您第一次调用它时懒惰地创建单例事务...