Mysql

我的查詢會因為連接超時而停止嗎?

  • July 3, 2014

我正在做一個相當大的查詢,它會遇到 MySQL 連接超時。我知道如何更改超時參數,但我也從不能長時間執行的筆記型電腦查詢。

數據庫管理員告訴我,我可以將結果發送到表中。搜尋了一下,似乎INSERT INTO dst_tbl SELECT * FROM src_tbl;基本上是這個想法(源文章)。

但是,即使我的結果被保存,當我重新連接時,查詢是否會從它停止的地方開始?有沒有辦法檢查我沒有失去/重複記錄?

更一般地說,我會很感激有關如何在超時約束下進行大型查詢的任何建議。

MySQL 是一個ACID數據庫。這個術語中的 A 代表原子性。這基本上意味著:

原子性要求每個事務都是“全有或全無”:如果事務的一部分失敗,則整個事務失敗,數據庫狀態保持不變。原子系統必須保證每種情況下的原子性,包括電源故障、錯誤和崩潰。對外界來說,已送出的事務(通過其對數據庫的影響)看起來是不可分割的(“原子的”),並且中止的事務不會發生。

所以,你完全不用擔心。如果您的事務超時,則不會將任何內容寫入數據庫。重新執行您的交易

引用自:https://dba.stackexchange.com/questions/69593