溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql事務隔離級別內容(讀提交)講義

發(fā)布時間:2020-04-27 11:32:36 來源:億速云 閱讀:281 作者:三月 欄目:MySQL數據庫

本文主要給大家介紹Mysql事務隔離級別內容(讀提交)講義,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續(xù)在億速云行業(yè)資訊里面關注我的更新文章的。                          Mysql事務隔離級別之讀提交

查看mysql 事務隔離級別

mysql> show variables like '%isolation%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | READ-COMMITTED |
+---------------+----------------+
1 row in set (0.00 sec)

可以看到當前的事務隔離級別為 READ-COMMITTED 讀提交

下面看看當前隔離級別下的事務隔離詳情,開啟兩個查詢終端A、B。

下面有一個order表,初始數據如下

Mysql事務隔離級別內容(讀提交)講義

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
第一步,在A,B中都開啟事務
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
第二步查詢兩個終端中的number
  • A

 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
  • B

 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
第三步將B中的number修改為2,但不提交事務
mysql> update `order` set number=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
第四步查詢A中的值
mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
發(fā)現A中的值并沒有修改。
第五步,提交事務B,再次查詢A中的值
  • B

mysql> commit;
Query OK, 0 rows affected (0.01 sec)
  • A

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
發(fā)現A中的值已經更改
第六步,提交A中的事務,再次查詢A,B的值。
  • A

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
  • B

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
發(fā)現A,B中的值都更改為2了。

下面給一個簡單的示意圖

Mysql事務隔離級別內容(讀提交)講義

我們可以看到,在事務隔離級別為讀已提交 的情況下,當B中事務提交了之后,即使A未提交也可以讀到B事務提交的結果。這樣解決了臟讀的問題。

以上就是Mysql事務隔離級別內容的介紹(讀提交)的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI