MySQL的二階段提交(Two-Phase Commit)是一種分布式事務處理機制,它是一組事務處理的模板,用于執行數據庫操作時處理不同的數據。
二階段提交在核心部分有兩個階段,首先是準備階段,之后是提交階段。在準備階段,數據庫節點驗證該事務的可行性,并鎖定參與該事務的數據。如果所有的參與者都準備就緒,那么就進入了提交階段。在這個階段,涉及到的一個數據節點向整個分布式事務會話提供提交意見。最終,如果所有的參與者都同意提交,則分布式事務提交并完成。
begin; update table1 set col1='val1' where id=1; update table2 set col2='val2' where id=2; commit;
絕大多數情況下,這些SQL語句的操作在單個數據庫中執行,因此不需要使用兩階段提交。然而,如果這些操作存在于多個數據庫中,只有當每個數據庫都能準備并提交變更時,整個操作才被認為是完成的。
相較于一階段提交,二階段提交雖然效率低下,但是在保證數據一致性上更可靠。
上一篇nodejs移除vue
下一篇mysql后期規則