首頁 >後端開發 >PHP問題 >php事務是什麼

php事務是什麼

王林
王林原創
2019-09-20 11:54:304512瀏覽

php事務是什麼

PHP事務四大特性

#交易就是一組原子性的SQL查詢,或是說一個獨立的工作單元。

原子性(Atomicity):

交易是資料庫的邏輯工作單位,它對資料庫的修改要麼全部執行,要麼全部不執行。

一致性(Consistemcy):

交易前後,資料庫的狀態都滿足所有的完整性限制。

隔離性(Isolation):

並發執行的交易是隔離的,一個不影響一個。如果有兩個事務,運作在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為串列化,為了防止交易操作間的混淆,必須串行化或序列化請求,使得在同一時間僅有一個請求用於同一資料。

透過設定資料庫的隔離級別,可以達到不同的隔離效果。

持久性(Durability):

在交易完成以後,該事務所對資料庫所做的更改便持久的保存在資料庫之中,並不會被復原.

PHP事務的並發問題

1、髒讀

事務A讀取了事務B更新的數據,然後B回滾操作,那麼A讀取到的資料就是髒資料。

2、不可重複讀取

事務A 多次讀取同一數據,事務B 在事務A多次讀取的過程中,對數據進行了更新並提交,導致事務A多次讀取相同資料時,結果不一致。

3、幻讀

系統管理員A將資料庫中所有學生的成績從特定分數改為ABCDE等級,但係統管理員B就在這個時候插入了一條具體分數的記錄,當系統管理員A改結束後發現還有一筆記錄沒有改過來,就好像發生了幻覺一樣,這就叫幻讀。

小結:不可重複讀的和幻讀很容易混淆,不可重複讀取側重於修改,幻讀著重於新增或刪除。解決不可重複讀的問題只需鎖住符合條件的行,解決幻讀需要鎖定表。

推薦教學:PHP影片教學

#

以上是php事務是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn