[英]MySQL Atomic UPDATE in InnoDB vs MyISAM
無論引擎如何(例如InnoDB或MyISAM),這種“比較和交換”語句是否始終是原子的? :
UPDATE tbl_name SET locked=1 WHERE id=ID AND locked <> 1;
我問這個是因為我打算使用這個語句進行與事務和非事務數據庫表兼容的偽行級鎖定。
這是MyISAM推薦的方法,但我不確定這是否適用於InnoDB,因為文檔建議使用事務。
是。 在InnoDB中,行將被鎖定(使您在id上有唯一索引,更新鎖定它必須掃描的所有行),更新並釋放鎖。 如果您沒有顯式事務/自動提交已啟用,則每個語句都在其自己的事務中運行,但它仍然是事務並且執行鎖定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.