成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Repeatable-Read及Read-Committed有哪些區(qū)別

這篇文章主要為大家展示了“Repeatable-Read及Read-Committed有哪些區(qū)別”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Repeatable-Read及Read-Committed有哪些區(qū)別”這篇文章吧。

廣安網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

MySQL 默認(rèn)提供的是 Repeatable-Read 可重復(fù)讀,更適用于oltp
Read-Committed 不可重復(fù)讀 也可以叫做提交讀
在MySQL中基本有這兩種事務(wù)隔離級(jí)別的設(shè)置,默認(rèn)的RR(Repeatable-Read)和實(shí)際中常見(jiàn)的RC(Read-Committed)。兩者區(qū)別是什么,怎么正確理解,用幾個(gè)SQL語(yǔ)句就能說(shuō)明白,就用簡(jiǎn)單的實(shí)驗(yàn)來(lái)說(shuō)明白。

   我們開(kāi)始吧。    

   首先創(chuàng)建一個(gè)測(cè)試表test,插入一些數(shù)據(jù)。

create table test( id int primary key,name varchar(30),memo varchar(30));
insert into test values(1,'name1','aaaa'),(2,'name2','aaaa'),(3,'name3','aaaa'),(4,'name4','aaaa'),(5,'name5','aaaa');     很多情況下,我們會(huì)把隔離級(jí)別從默認(rèn)的RR修改為RC,這也是其它很多數(shù)據(jù)庫(kù)默認(rèn)的事務(wù)隔離級(jí)別。

我們打開(kāi)兩個(gè)窗口,來(lái)對(duì)比關(guān)聯(lián)測(cè)試。


RC模式下的測(cè)試

1

窗口1

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

>begin;  --開(kāi)啟事務(wù) 
>select *from test;  --查看數(shù)據(jù)
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | name2 | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

2

窗口2

begin;  --開(kāi)啟事務(wù)
>update test set name='aaaaa' where id=2;  --修改一條記錄
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0
>commit;  --提交事務(wù)
Query OK, 0 rows affected (0.01 sec)

1

窗口1

>select *from test;   --查看窗口1中的數(shù)據(jù),就會(huì)發(fā)現(xiàn)原來(lái)窗口的數(shù)據(jù)發(fā)生了變化,這是不可重復(fù)讀的一個(gè)典型例子。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

RR模式下的測(cè)試

再來(lái)看看RR這個(gè)隔離級(jí)別,其實(shí)有了上面的測(cè)試,就相對(duì)有底了。這是MySQL默認(rèn)的隔離級(jí)別,會(huì)出現(xiàn)幻讀的情況。

1

窗口1

首先修改隔離級(jí)別從RC到RR

>set global transaction isolation level repeatable read; 
Query OK, 0 rows affected (0.00 sec)
?查看事務(wù)隔離級(jí)別。
>show variables like 'tx_isolation';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| tx_isolation  | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)

>begin;   --開(kāi)啟事務(wù)
>select *from test;   --查看表test的數(shù)據(jù)。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

2

窗口2

>begin;  --開(kāi)啟事務(wù)
>update test set name='RR_test';  --修改表test的數(shù)據(jù),所有記錄都發(fā)生變化。
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5  Changed: 5  Warnings: 0
>commit;  --提交事務(wù)
Query OK, 0 rows affected (0.00 sec)

1

窗口1


>select *from test;  --在RR模式下,窗口1中的事務(wù)因?yàn)檫€沒(méi)有提交,看到的還是原來(lái)的數(shù)據(jù)。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)
>commit;  --我們提交窗口1的事務(wù)
Query OK, 0 rows affected (0.00 sec)
>select *from test;  --再次查看數(shù)據(jù)就發(fā)生了變化,實(shí)際上窗口1中沒(méi)有任何的DMl操作。
+----+---------+------+
| id | name    | memo |
+----+---------+------+
|  1 | RR_test | aaaa |
|  2 | RR_test | aaaa |
|  3 | RR_test | aaaa |
|  4 | RR_test | aaaa |
|  5 | RR_test | aaaa |
+----+---------+------+
5 rows in set (0.00 sec)

以上是“Repeatable-Read及Read-Committed有哪些區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站標(biāo)題:Repeatable-Read及Read-Committed有哪些區(qū)別
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/article0/ppidoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作外貿(mào)建站、響應(yīng)式網(wǎng)站品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
苍梧县| 宜宾市| 南昌市| 吴川市| 高密市| 班玛县| 平利县| 望都县| 奉新县| 竹北市| 沂南县| 静安区| 敦煌市| 申扎县| 临沧市| 汨罗市| 南平市| 阜平县| 荔波县| 祁阳县| 龙岩市| 仲巴县| 祁门县| 新宾| 桂阳县| 普定县| 治县。| 合川市| 普定县| 年辖:市辖区| 门头沟区| 横山县| 宁明县| 通河县| 德令哈市| 克什克腾旗| 永善县| 黔西| 平陆县| 油尖旺区| 灵丘县|