4
如果我要運行DELETE FROM some_table
,那就是超時,數據會發生什麼變化?當SQL DELETE查詢超時時,數據會發生什麼情況?
的方式我看它,一兩件事情可能發生:
數據被刪除了到查詢超時,所以如果有數據庫和第1,000,000條記錄點500,000被刪除,他們會保持刪除。數據庫現在包含了查詢運行之前的一半數量。
數據被刪除,查詢超時,數據被回滾(我猜測是由
DELETE
所做的日誌?)。數據庫現在包含與其開始的完全相同的數據。
兩者似乎都合乎邏輯。會有100%的時間發生嗎?或者這是依賴於我不知道的一些設置?請注意,我並沒有詢問DELETE
的可行性,我知道TRUNCATE
可能是適合的。這純粹是出於對DELETE
的超時功能的好奇。
mysql是一個ACID數據庫。個別的查詢語句是原子的 - 它們要麼完全完成,要麼根本不做任何事情。 –
@Marc:嚴格來說,它取決於所使用的引擎。 – sstan
當* timeout *表示事務被中止時,DELETE將被回滾。 – dnoeth