古詩詞大全網 - 成語故事 - 關系型數據庫事務的ACID特性與實現

關系型數據庫事務的ACID特性與實現

ACID 是為保證事務(transaction)是正確可靠的,所必須具備的四個特性:

以 A 給 B 轉賬100元為例:

MySQL事務是由 InnoDB 存儲引擎實現的。

可以用如下的命令顯式的開啟事務:

另外,在自動提交(autocommit)模式下,我們執行的每壹條 SQL 語句都是壹條獨立的事務;如果關閉了自動提交(autocommit)模式,則所有的 SQL 語句都在壹個事務中,直到執行了 commit 或 rollback,該事務結束,同時開始了另外壹個事務。

MySQL 事務的 ACID 特性靠如下機制實現:

Go 語言的 Gorm 提供了對於事務操作的支持:

此外,還有嵌套事務以及手動事務等操作,可以參考中文文檔: learnku.com/docs/gorm/v…

@Transactional 註解必須添加在public方法上,private、protected方法上是無效的。

壹般情況下,推薦將@Transactional 註解加在方法上,因為@Transactional直接加在類或者接口上,@Transactional註解會對類或者接口裏面所有的public方法都有效,會影響性能。