tft每日頭條

 > 科技

 > mysql事務四大特性教程

mysql事務四大特性教程

科技 更新时间:2024-11-29 11:44:50

mysql事務四大特性教程?事務 ACID 特性原子性(Atomicity):最小的工作單元,整個工作單元要麼一起提交成功,要麼全部失敗回滾,現在小編就來說說關于mysql事務四大特性教程?下面内容希望能幫助到你,我們來一起看看吧!

mysql事務四大特性教程(數據庫事務的特性與隔離)1

mysql事務四大特性教程

事務 ACID 特性

原子性(Atomicity):最小的工作單元,整個工作單元要麼一起提交成功,要麼全部失敗回滾。

一緻性(Consistency):事務中操作的數據及狀态改變是一緻的,即寫入資料的結果必須完全符合預設的規則,不會因為出現系統意外等原因導緻狀态的不一緻。

隔離型(Isolation):一個事務所操作的數據在提交之前,對其他事務的可見性設定(一般設定為不可見)。

持久性(Durability):事務所做的修改就會永久保存,不會因為系統意外導緻數據的丢失。

事務并發帶來了哪些問題

髒讀

髒讀發生在一個事務A讀取了被另一個事務B修改,但是還未提交的數據。假如B回退,則事務A讀取的是無效的數據。這跟不可重複讀類似,但是第二個事務不需要執行提交。

不可重複讀

在基于鎖的并行控制方法中,如果在執行select時不添加讀鎖,就會發生不可重複讀問題。

在多版本并行控制機制中,當一個遇到提交沖突的事務需要回退但卻被釋放時,會發生不可重複讀問題。

幻讀

幻讀發生在當兩個完全相同的查詢執行時,第二次查詢所返回的結果集跟第一個查詢不相同。

發生的情況:沒有範圍鎖。

事務四種隔離級别

SQL92 ANSI/ISO标準

Read Uncommitted(未提交讀) --未解決并發問題

事務未提交對其他事務也是可見的,髒讀(dirty read)

Read Committed(提交讀) --解決髒讀問題

一個事務開始之後,隻能看到自己提交的事務所做的修改,不可重複讀(non repeatable

read)

快照讀總是能讀到最新的行數據快照,當然,必須是已提交事務寫入的

Repeatable Read(可重複讀) --解決不可重複讀問題

在同一個事務中多次讀取同樣的數據結果是一樣的,這種隔離級别未定義解決幻讀的問題。

某個事務首次 read 記錄的時間為 T,未來不會讀取到 T 時間之後已提交事務寫入的記錄,以保證連續相同的 read 讀到相同的結果集。

Serializable(串行化) --解決所有問題

最高的隔離級别,通過強制事務的串行執行

說明:

InnDB 引擎默認的事務隔離級别是可重複讀(Repeatable Read),在該級别中它把幻讀的問題也解決了。InnDB 中事務隔離級别通過鎖、MVCC 實現

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved