久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL事務的概念以及事務隔離級別介紹

144次閱讀
沒有評論

共計 1489 個字符,預計需要花費 4 分鐘才能閱讀完成。

本篇內容主要講解“MySQL 事務的概念以及事務隔離級別介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“MySQL 事務的概念以及事務隔離級別介紹”吧!

先簡單介紹一下 MySQL 中事務的概念,它是指:  用于實現某種行為的 SQL 語句的組合,可以是單條 SQL 語句,也可以是多條。  就像線程一樣,MySQL 服務器允許多個事務并發執行去更新某些數據,為了保障安全,MySQL 提供了四種隔離級別,用來限制不同事務之間的干擾。

四種隔離級別如下(按照級別由低到高):

read uncommitted(讀未提交)

read committed(讀已提交)

repeatable read(可重復讀)

Serializable(串行化)

接下來按照這個順序分別進行演示。

** 準備工作 **

由于我本地服務器上只有一個 root 用戶,為了后續的演示操作,所以需要再新建一個用戶 testB,并授予相應權限。方便起見,下文中 root、testB 開啟的事務稱為 A、B。

一、read uncommitted(讀未提交)

分別登錄到用戶 root 和 testB,以表 t_ss 作為實驗表,通過查詢可以看到表 t_ss 是空的。

分別將 root 和 testB 的隔離級別設置為  read uncommitted(  讀   未提交)。

接著分別在 root、testB 中開啟事務 A、B,然后在 B 中向表 t_ss 插入一條數據。  這時候 B 中的事務還沒有提交(commit),我們再在 A 中查表,可以看見,  即使 B 的事務還未提交,A 中也可以查詢到事務 B 插入的數據。

到這大家應該都能理解  read uncommitted(  讀   未提交)  的含義了,通俗來說就是:  即使事務 B 沒有 commit,其它事務也能讀取到事務 B 更新的數據,即能夠讀取事務沒有提交的數據。  這是事務隔離級別中等級最低的一個。

二、read committed(讀已提交)

將 root 和 testB 的事務隔離級別設置為  read committed(讀已提交)。

同樣開啟兩個事務,并在 B 中再插入一條數據,此時 B 事務未提交,當在 A 中查詢時,發現并未查詢到 B 新插入的數據。

當 commit 事務 B 后,A 成功讀取到 B 插入的數據。

總結一下,在 read committed(讀已提交)級別時,  其它事務只能讀取事務 B 提交后的數據,未提交則讀取不到。  這是大部分數據庫的默認隔離級別。

三、repeatable read(可重復讀)

將事務隔離級別設置為  repeatable read(可重復讀) ,并分別開啟事務。

A 先查表,有兩條數據,然后 B 插入一條數據并 commit,A 再查表,結果還是兩條數據,但是 B 中查表所得結果是三條數據。(箭頭指示命令執行順序)

也就是說,當數據庫處于 repeatable read(可重復讀)時,  同一個事務前后兩次所讀取的數據必須是一致的,無論事務 B 有沒有插入數據。  它是 MySQL 的默認隔離級別。

四、Serializable(串行化)

將 root 的隔離級別設置為  Serializable(串行化) ,開啟事務。當在事務 A 中查詢表 t_ss 且未 commit 時,B 事務一直在等待,到達指定時間后會報錯,顯示超時。

在事務 A 提交后,事務 B 才能夠成功插入數據。

Serializable(串行化)是等級最高,要求最嚴的事務隔離級別,在這種情況下,  其它事務必須等待當前事務 commit 后才能執行。

到此,相信大家對“MySQL 事務的概念以及事務隔離級別介紹”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-28發表,共計1489字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 曲松县| 靖远县| 临西县| 新建县| 贵德县| 曲周县| 滁州市| 武强县| 壶关县| 旺苍县| 大洼县| 迁西县| 阳西县| 内丘县| 靖江市| 贞丰县| 阿城市| 郴州市| 栾川县| 永仁县| 庐江县| 岳西县| 高陵县| 鄂温| 邯郸县| 宝山区| 莱芜市| 高要市| 桐梓县| 宜宾县| 凤凰县| 定结县| 屏山县| 张家界市| 凌云县| 临海市| 文安县| 萨迦县| 沂源县| 桐乡市| 广元市|