日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

鎖:計算機協調多個進程或線程并發訪問某一資源的機制。

在數據庫中,除傳統的計算資源(如CPU、RAM、I/O等)的爭用外,數據也是一種供許多用戶共享的資源。如何保證數據并發的一致性、有效性是所有數據庫必須解決的一個問題,鎖沖突也是影響數據庫并發訪問性能的一個重要因素。從這個角度來說,鎖對數據庫而言顯得尤為重要,也更復雜。

鎖的分類

1)從對數據操作的類型分為讀鎖和寫鎖

2)從對數據操作的粒度分主要有表鎖和行鎖

讀鎖和寫鎖:

讀鎖(共享鎖):針對同一份數據,多個讀操作可以同時進行而不會互相影響。

寫鎖(排他鎖):當前寫操作沒有完成前,它會阻斷其他讀和寫操作。

表鎖

先看一些命令

我們可以手動對一張表加鎖,可以是讀鎖或者寫鎖,命令:

lock table 表名 read/write,表名 read/write,……

查看表有沒有鎖的命令

show open tables;
MySQL數據庫鎖理論

 

In_use的值是0代表沒鎖,是1代表有鎖。

現在數據庫中有一張表,test_lock,現在手動給它加鎖,進行一些操作測試。

一、加讀鎖

lock table test_lock read;
MySQL數據庫鎖理論

 

加鎖成功,可以用show open tables命令查看

MySQL數據庫鎖理論

 

現在可以做一些操作。

1、讀被鎖的表:

select * from test_lock;

在當前連接中:

MySQL數據庫鎖理論

 

可以查詢到結果。

在新連接中:

MySQL數據庫鎖理論

 

新的連接同樣可以查詢被鎖的表。

2、查詢庫中其他表:

select * from test2;

在當前連接中:

MySQL數據庫鎖理論

 

結果報錯,無法查詢。

在新連接中:

MySQL數據庫鎖理論

 

正常,沒有影響。

3、更新被鎖的表:

update test_lock set name = 'abcd' where id = '1';

在當前連接中:

MySQL數據庫鎖理論

 

無法更新。

在新連接中:

執行此語句后,會發現一直在等待,即阻塞了,直到我們把表的鎖釋放。

釋放鎖命令:unlock table;

執行釋放命令后,新連接中的update語句也馬上有了反應,

MySQL數據庫鎖理論

 

執行等待了1分多鐘。

4、更新庫中其他表:

update test2 set name = 'a2' where id = '1';

在當前連接中:

MySQL數據庫鎖理論

 

無法更新

在新連接中:

MySQL數據庫鎖理論

 

在新的會話中,更新其他表是沒有影響的。

二、加寫鎖

lock table test_lock write;
MySQL數據庫鎖理論

 

同樣,我們在當前會話和和新會話中做一些操作對比。

1、讀被鎖的表:

select * from test_lock;

當前會話中:

MySQL數據庫鎖理論

 

讀沒有影響。

新的會話中:

此時會被阻塞,需要等待釋放鎖。

MySQL數據庫鎖理論

 

2、查詢庫中其他表:

select * from test2;

當前會話中:

MySQL數據庫鎖理論

 

其他表不能查詢。

新的會話中:

MySQL數據庫鎖理論

 

此時不受影響。

3、更新被鎖的表:

update test_lock set name = 'abcd' where id = '2';

當前會話中:

MySQL數據庫鎖理論

 

可以更新。

新的會話中:

結果是被阻塞。

4、更新庫中其他表

update test2 set name = 'a2' where id = '2';

當前會話中:

MySQL數據庫鎖理論

 

 

此時不可以更新其他表。

新的會話中:

MySQL數據庫鎖理論

 

更新其他表時候沒有問題。

以上是對表分別加讀鎖和寫鎖,然后進行的一些操作對比,重要的關注在其他會話中對被鎖表的讀寫請求。

對表加讀鎖,不會阻塞其他進行對同一表的讀請求,但會阻塞對同一表的寫請求。只有當讀鎖釋放后,才會執行其他執行進行的寫操作。

對表加寫鎖,會阻塞其他進程對同一表的讀和寫的請求,只有當寫鎖釋放后,才會執行其它進程的讀寫操作。

分享到:
標簽:理論 MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定