古詩詞大全網 - 成語查詢 - 事務和鎖機制是什麽關系?開啟事務就自動加鎖了嗎

事務和鎖機制是什麽關系?開啟事務就自動加鎖了嗎

事務與鎖是不同的。事務具有ACID(原子性、壹致性、隔離性和持久性),鎖是用於解決隔離性的壹種機制。事務的隔離級別通過鎖的機制來實現。另外鎖有不同的粒度,同時事務也是有不同的隔離級別的(壹般有四種:讀未提交Read uncommitted,讀已提交Read committed,可重復讀Repeatable read,可串行化Serializable)。在具體的程序設計中,開啟事務其實是要數據庫支持才行的,如果數據庫本身不支持事務,那麽仍然無法確保妳在程序中使用的事務是有效的。鎖可以分為樂觀鎖和悲觀鎖:悲觀鎖:認為在修改數據庫數據的這段時間裏存在著也想修改此數據的事務;樂觀鎖:認為在短暫的時間裏不會有事務來修改此數據庫的數據;我們壹般意義上講的鎖其實是指悲觀鎖,在數據處理過程中,將數據置於鎖定狀態(由數據庫實現)。回到妳的問題,如果開啟了事務,在事務沒提交之前,別人是無法修改該數據的;如果rollback,妳在本次事務中的修改將撤消(不是別人修改的會沒有,因為別人此時無法修改)。當然,前提是妳使用的數據庫支持事務。還有壹個要註意的是,部分數據庫支持自定義SQL鎖覆蓋事務隔離級別默認的鎖機制,如果使用了自定義的鎖,那就另當別論。重點:壹般事務使用的是悲觀鎖(具有排他性)。