簡潔說明:
由於現在面向框架開發,使用事務只需要在方法上新增 @transactional註解,但是也需要注意不能隨意使用。
例如:方法的執行邏輯中只有一句查詢語句,或只有一句更新、插入,這種情況沒有必要設定事務,若需要校驗執行
結果,可以使用**邏輯判斷。即使出現異常,也只會影響上層邏輯,並不會造成其他業務不可用。
事務的思想也是要麼全部執行,要麼全部不執行。對事務的粒度控制要做到心中有數,避免死鎖的情況發生。
對於增、刪、改的資料庫操作,再sql比較複雜情況也需要把控連表或子查詢的執行效率,避免事務長時間占用鎖等機制引發問題。
任務粒度 軟體粒度
公司的乙個專案有三個子系統,其中a子系統最先開發,開發採用每個窗體類由乙個開發人員來開發的方式,結果整個a子系統開發下來出現了很多問題。主要有兩個,首先是時間看來沒有預先計畫的那麼充足 似乎公司裡的所有軟體專案都是如此 由於開發過程中相互間缺乏溝通,每個窗體類中相同的功能卻有不同的實現,導致執行時的...
mysql更改死鎖粒度 Mysql總結之事務 鎖
前言 mysql部分到此結束 正文什麼是事務是資料庫最小的工作單元,不可再拆分。可能包含乙個或者一系列的dml語句,包括insert,update,delete。當然ddl,dcl也會包含事務 事務特性原子性 一次多個操作要麼都成功,要麼都失敗。通過undo.log實現回滾,保證原子性。隔離性 多個...
mysql 事務 數量 Mysql 事務
什麼是事務 不可分割的操作,比如乙個事務要修改 a 表和刪除 b 表的資料兩個操作,這兩個操作都成功,這個事務才 commit,不然 rollback 每條 sql 語句都是乙個事務 只對 dml 生效 caid 一致性 consistency 讓資料保持一定程度的合理性,比如使用者加入購物車,購物...