0
我想爲來自每個傳入請求的中間件的請求參數添加一個knex事務。knex.transaction內部發生了什麼()
knex.transaction()的性能如何?它是否會像打開數據庫連接一樣昂貴?
提前致謝! :)
我想爲來自每個傳入請求的中間件的請求參數添加一個knex事務。knex.transaction內部發生了什麼()
knex.transaction()的性能如何?它是否會像打開數據庫連接一樣昂貴?
提前致謝! :)
Knex交易急切地打開。因此,當您撥打knex.transaction
時,即使您沒有在該處發送任何查詢,它也會立即保留池中的數據庫連接。
此外,如果您正在創建隱式打開的事務,請記住確保它將被提交/回滾。否則,它們將在處理請求後保持活動狀態並填充連接池。
因此,而不是總是開盤交易的你可能會考慮暴露req.trx()
中間件,當你調用它的第一次,這將創造懶洋洋單交易...
我建議你先閱讀一些有關[交易](HTTPS: //en.wikipedia.org/wiki/Database_transaction),然後考慮在應用程序中何時以及如何使用它們。 – piotrbienias
感謝您的鏈接,但我知道如何使用它們。 – Ben