我正在運行以下 Python 代碼(簡化):
db = mysql.connector.connect(**dbconfig)
cur = db.cursor()
for row in dataFrame:
cur.execute(INSERT [TABLE NAME] column, VALUES ({row}))
db.commit() # should this be inside or outside the loop?
我的問題是,我是否會根據 .commit() 陳述句是在回圈內部(每次迭代運行)還是在外部(在所有 .execute 陳述句之后運行)來預期性能差異。
兩種方法似乎都可以正常作業,我沒有注意到少量資料(< 100 行)的性能有任何差異。最終,我將處理更多的行,所以我想現在就得到它,因為我希望它會有所作為。
uj5u.com熱心網友回復:
這取決于。
COMMIT需要一些時間;更多提交 = 花費更多時間。
另一方面,您在單個事務中放入的東西越多,該事務所花費的時間就越長,并且它干擾其他行程的時間也就越多。并且陷入僵局的可能性更大。
在大多數情況下,將需要“原子”運行或失敗的陳述句組合在一起。這就是交易的目的。如果您最終遇到性能或死鎖問題,那么我們應該根據具體情況查看細節以決定該怎么做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433451.html
