大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 MySQL表鎖詳解

MySQL表鎖詳解

更新時間:2021-01-08 17:34:27 來源:動力節點 瀏覽1619次

鎖是計算機協調多個進程或純線程并發訪問某一資源的機制。而表鎖由MySQL Server 實現,一般在執行DDL語句時會對整個表進行加鎖,比如說ALTER TABLE等操作。在執行SQL語句時,也可以明確指定對某個表進行加鎖。本文我們就來重點講述一下MySQL表鎖

 

表鎖使用的是一次性鎖技術,也就是說,在會話開始的地方使用 lock 命令將后續需要用到的表都加上鎖,在表釋放前,只能訪問這些加鎖的表,不能訪問其他表,直到最后通過 unlock tables 釋放所有表鎖。除了使用 unlock tables 顯示釋放鎖之外,會話持有其他表鎖時執行lock table 語句會釋放會話之前持有的鎖;會話持有其他表鎖時執行 start transaction 或者 begin 開啟事務時,也會釋放之前持有的鎖。

 

由于MyISAM存儲引擎使用的鎖定機制完全是由MySQL提供的表級鎖定實現,所以下面我們將以MyISAM存儲引擎作為示例存儲引擎。

1.MySQL表級鎖的鎖模式

MySQL的表級鎖有兩種模式:表共享讀鎖(Table Read Lock)和表獨占寫鎖(Table Write Lock)。鎖模式的兼容性:

對MyISAM表的讀操作,不會阻塞其他用戶對同一表的讀請求,但會阻塞對同一表的寫請求;

對MyISAM表的寫操作,則會阻塞其他用戶對同一表的讀和寫操作;

MyISAM表的讀操作與寫操作之間,以及寫操作之間是串行的。當一個線程獲得對一個表的寫鎖后,只有持有鎖的線程可以對表進行更新操作。其他線程的讀、寫操作都會等待,直到鎖被釋放為止。

 

2.如何加表鎖

MyISAM在執行查詢語句(SELECT)前,會自動給涉及的所有表加讀鎖,在執行更新操作(UPDATE、DELETE、INSERT等)前,會自動給涉及的表加寫鎖,這個過程并不需要用戶干預,因此用戶一般不需要直接用LOCK TABLE命令給MyISAM表顯式加鎖。顯式加鎖基本上都是為了方便而已,并非必須如此。給MyISAM表顯示加鎖,一般是為了一定程度模擬事務操作,實現對某一時間點多個表的一致性讀取。例如,有一個訂單表orders,其中記錄有訂單的總金額total,同時還有一個訂單明細表order_detail,其中記錄有訂單每一產品的金額小計subtotal,假設我們需要檢查這兩個表的金額合計是否相等,可能就需要執行如下兩條SQL:SELECT SUM(total) FROM orders;

SELECT SUM(subtotal) FROM order_detail;

這時,如果不先給這兩個表加鎖,就可能產生錯誤的結果,因為第一條語句執行過程中,order_detail表可能已經發生了改變。因此,正確的方法應該是:

LOCK tables orders read local,order_detail read local;

SELECT SUM(total) FROM orders;

SELECT SUM(subtotal) FROM order_detail;

Unlock tables;

 

3.MyISAM表鎖優化建議

對于MyISAM存儲引擎,雖然使用表級鎖定在鎖定實現的過程中比實現行級鎖定或者頁級鎖所帶來的附加成本都要小,鎖定本身所消耗的資源也是最少。但是由于鎖定的顆粒度比較到,所以造成鎖定資源的爭用情況也會比其他的鎖定級別都要多,從而在較大程度上會降低并發處理能力。所以,在優化MyISAM存儲引擎鎖定問題的時候,最關鍵的就是如何讓其提高并發度。由于鎖定級別是不可能改變的了,所以我們首先需要盡可能讓鎖定的時間變短,然后就是讓可能并發進行的操作盡可能的并發。

 

從上面對MySQL表鎖的描述我們不難看出,表鎖具有開銷小,加鎖快的特性,而且不會出現死鎖,鎖定粒度大,發生鎖沖突的概率最高,并發度低。當然,表鎖只是MySQL里面的一種大的鎖的類別,還有行鎖。想要了解行鎖的小伙伴,鎖定本站的MySQL教程,里面有著詳細的講解。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品美女在线 | 国产一级特黄老妇女大片免费 | 国产精品久久久久激情影院 | 欧美国产日韩在线观看 | 99热久久国产精品这里小说 | 一级毛片日韩a欧美视频 | 真实国语对白视频播放 | 毛片在线高清免费观看 | 欧美成人观看视频在线 | 亚洲精品一区二区乱码在线观看 | 寡妇野外啪啪一区二区 | 日本免费不卡视频 | 天天做天天爱天天一爽一毛片 | 激情在线播放免费视频高清 | 亚洲合集综合久久性色 | 波多野结衣乳巨码无在线观看 | 精品偷拍模特露出丝袜在线 | 国产综合亚洲专区在线 | 欧美日韩亚洲综合在线一区二区 | 亚洲影院中文字幕 | 国产毛片久久精品 | 欧美激情一区二区三区中文字幕 | 国产精品日韩欧美在线第3页 | 中国一级特黄高清免费的大片 | 奇米777第四色 | 国语一级毛片 | 俄罗斯一级毛片aaaa | 亚洲图片另类图片 | 精品欧美一区二区三区在线 | 国产亚洲精品成人a在线 | 欧美久久精品一级c片片 | 中文字幕日本一区波多野不卡 | 久久中文字幕日韩精品 | 欧美一区二区三区免费观看视频 | 国产精品久久久久激情影院 | 亚州精品一区二区三区 | 欧美黄色三级视频 | 欧美日韩加勒比一区二区三区 | 91精品国产高清久久久久久io | 日本在线不卡视频 | 一级一级一级毛片 |