Mysql
我的查詢會因為連接超時而停止嗎?
我正在做一個相當大的查詢,它會遇到 MySQL 連接超時。我知道如何更改超時參數,但我也從不能長時間執行的筆記型電腦查詢。
數據庫管理員告訴我,我可以將結果發送到表中。搜尋了一下,似乎
INSERT INTO dst_tbl SELECT * FROM src_tbl;
基本上是這個想法(源文章)。但是,即使我的結果被保存,當我重新連接時,查詢是否會從它停止的地方開始?有沒有辦法檢查我沒有失去/重複記錄?
更一般地說,我會很感激有關如何在超時約束下進行大型查詢的任何建議。
MySQL 是一個ACID數據庫。這個術語中的 A 代表原子性。這基本上意味著:
原子性要求每個事務都是“全有或全無”:如果事務的一部分失敗,則整個事務失敗,數據庫狀態保持不變。原子系統必須保證每種情況下的原子性,包括電源故障、錯誤和崩潰。對外界來說,已送出的事務(通過其對數據庫的影響)看起來是不可分割的(“原子的”),並且中止的事務不會發生。
所以,你完全不用擔心。如果您的事務超時,則不會將任何內容寫入數據庫。重新執行您的交易