唯讀事務和沒有事務

2021-08-04 20:43:50 字數 725 閱讀 6142

在專案中看到

@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...