2017-02-14 42 views
0

我想爲來自每個傳入請求的中間件的請求參數添加一個knex事務。knex.transaction內部發生了什麼()

knex.transaction()的性能如何?它是否會像打開數據庫連接一樣昂貴?

提前致謝! :)

+0

我建議你先閱讀一些有關[交易](HTTPS: //en.wikipedia.org/wiki/Database_transaction),然後考慮在應用程序中何時以及如何使用它們。 – piotrbienias

+0

感謝您的鏈接,但我知道如何使用它們。 – Ben

回答

0

Knex交易急切地打開。因此,當您撥打knex.transaction時,即使您沒有在該處發送任何查詢,它也會立即保留池中的數據庫連接。

此外,如果您正在創建隱式打開的事務,請記住確保它將被提交/回滾。否則,它們將在處理請求後保持活動狀態並填充連接池。

因此,而不是總是開盤交易的你可能會考慮暴露req.trx()中間件,當你調用它的第一次,這將創造懶洋洋單交易...