2012-03-23 125 views
1

我想更新innoDB表中的10000行。通常,完成需要幾分鐘的時間。在事務中準備好的語句

問題是如果互聯網連接突然中斷可能會發生意外。我們可以使用Transaction來處理這種情況。爲了安全起見,我還在Transaction中使用了Prepared Statement,但出現了另一個問題:我無法在一個事務中更新所有10000行,因爲Prepared Statement應該立即用盡我們所知的內存(描述爲herehere)。

我該怎麼辦?

Prepared Statement更安全,性能良好但內存消耗。 轉義安全性較差,性能較差,但所有10000行在一個事務中成功運行。

+1

你不能在單個事務中使用多個預處理語句嗎?啓動事務,一次重複準備好的語句,小塊,直到所有數據加載,然後提交。 – 2012-03-23 03:36:10

+0

感謝Andrew,我嘗試了這種方法,但似乎Prepared Statement在整個事務提交併且會話關閉之前不會釋放內存。 – Alan 2012-03-23 03:52:24

+0

ouch:o(您使用的是什麼語言? – 2012-03-23 03:57:29

回答

0

不支持在預處理語句中使用multiple語句。