spring下,mysql默認RR隔離級別下,不用@Transactional的方法里select是沒有事務支持吧?那么有臟讀問題嗎?
2 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
實際和Spring沒有關系的,本質還是MySQL的問題。
還要區分好,事務和隔離級別的關系。當存在并發事務時,如果沒有恰當的隔離界別的話,會導致并發狀態不正確,簡單點說,不同隔離級別是保證系統狀態正確和性能之間的權衡與妥協。
再者說,MySQL的數據引擎是InnoDB的話。 在InnoDB數據庫引擎中,所有用戶執行的數據庫語句都發生在事務中。如果啟動autocommit模式,每條SQL語句自己開啟一個單獨的事務。默認情況下,MySQL在每個connection啟動session,autocommit默認開啟,所以如果這條SQL語句執行完畢沒有返回error,MySQL自動執行commit。當然你可以手動關閉,很多內容Spring幫你做了。
最后說一句,可重復讀是MySQL的默認事務隔離級別。
添加回答
舉報
0/150
提交
取消