在專案中看到@transactional(readonly=true)
註解(該屬性用於設定當前事務是否為唯讀事務,設定為
true
表示唯讀,
false
則表示可讀寫,預設值為
false
。例如:
@transactional(readonly=true)),了解到是唯讀事務,網上搜了下唯讀事務和沒有事務的區別,整理如下:
oracle預設情況下(沒有事務) 保證了sql語句級別的讀一致性,即在一條sql語句執行期間,它只會看到執行前點的資料狀態,而不會看到執行期間資料被其他sql改變的狀態。
所以如果執行多條sql的時候呢?比如你做乙個報表查詢,在執行完第一條sql的時候,執行第二條查詢sql,而這個之間有資料被改變了,第二條資料查詢就有可能不一致
而oracle的唯讀查詢則保證了事務級別的讀一致性,即
在該事務範圍內執行的多條sql都只會看到執行前點的資料狀態,而不會看到事務期間的任何被其他 sql改變的狀態。
沒有事務的時候,在執行一條sql語句看到執行前點的資料狀態,保證資料一致性
唯讀事務,在執行多條sql語句看到執行前點的資料狀態,保證資料一致性
mysql沒有事務死鎖 Mysql事務與死鎖
好久沒有寫部落格了,最近工作太忙了,真的是996icu呀。想找個機會跳出來。之後我要做到work life balance!當考慮的就是資料一致性的問題時我們用就應該想到mysql的事務。但是當我們使用事務時會有很多的坑,首先我們了解一下事務的隔離界別。1 事物的隔離級別 資料庫中有四種資料隔離級別...
事務 唯讀事務
b 沒有事務 b 保證了sql語句級別的讀一致性。即在一條sql語句執行期間,它只會看到執行前點的資料狀態,而不會看到執行期間資料被其他sql改變的狀態。存在的問題 比如你做乙個報表查詢,在執行完第一條sql的時候,執行第二條查詢sql,而這個之間有資料被改變了,第二條資料查詢就有可能不一致 b 唯...
自有事務和推導事務相互轉換
pac成本法,帶成本的雜項事務處理是自有事務,不帶成本的雜項事務處理是推導事務。要將其自有事務和推導事務相互轉換,可以通過更新mmt表的transaction cost來實現。如下 1 自有 推導 update mtl material transactions mmt set mmt.transf...