MySQL MyISAM引擎的讀鎖與寫鎖
MyISAM引擎表鎖(偏讀取)
加讀鎖
獲得read鎖定
LOCK TABLE tb_item_01 READ;
測試當前session是否可以查詢該表記錄,經測試ok。
測試當前session是否可以更新或插入該表記錄
測試當前session是否可以查詢其他表
測試其他session是否可以查詢該表記錄,經測試ok。
測試其他session是否可以更新或插入該表記錄,經測試阻塞,直到釋放讀鎖。
UNLOCK TABLES;#解鎖
測試其他session是否可以查詢或更新其他表記錄,經測試ok。
MyISAM引擎加寫鎖
獲得wirte鎖定
LOCK TABLE tb_item_01 WRITE;
當前session對當前表的查詢、更新、插入,都ok。
當前session對其他表的查詢、更新、插入
其他session對當前表的查詢阻塞,需要等待鎖被釋放。
總結:對MyISAM表的讀操作(加讀鎖),不會阻塞其他程式對同一表的讀請求,但會阻塞對同一表的寫請求。只有當讀鎖釋放後,才會執行其他程式的寫操作。
對MyISAM表的寫操作(加寫鎖),會阻塞其他程式對同一表的讀和寫請求。只有當讀鎖釋放後,才會執行其他程式的讀寫操作。
相關文章
- Mysql(MyISAM)的讀寫互斥鎖問題的解決方法MySql
- Mysql中的鎖機制——MyISAM表鎖MySql
- mysql myisam的鎖機制MySql
- Lock鎖之重入鎖與讀寫鎖
- 讀寫鎖 ReentrantReadWriteLock 與 互斥鎖 的效率
- MySQL優化篇系列文章(二)——MyISAM表鎖與InnoDB鎖問題MySql優化
- (MariaDB/MySQL)MyISAM儲存引擎讀、寫操作的優先順序MySql儲存引擎
- MYSQL引擎的鎖對比MySql
- 讀寫鎖
- MySQL內部實現讀鎖和寫鎖的具體鎖定型別介紹MySql型別
- Mysql innodb引擎(二)鎖MySql
- 淺談Java中的鎖:Synchronized、重入鎖、讀寫鎖Javasynchronized
- 讀寫鎖 ReentrantReadWriteLock
- Java中的讀/寫鎖Java
- Lock介面、重入鎖ReentrantLock、讀寫鎖ReentrantReadWriteLockReentrantLock
- 【JavaSE】Lock鎖和synchronized鎖的比較,lock鎖的特性,讀寫鎖的實現。Javasynchronized
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- Java讀寫鎖ReadWriteLockJava
- MySQL鎖問題分析-全域性讀鎖MySql
- MySQL鎖(讀鎖、共享鎖、寫鎖、S鎖、排它鎖、獨佔鎖、X鎖、表鎖、意向鎖、自增鎖、MDL鎖、RL鎖、GL鎖、NKL鎖、插入意向鎖、間隙鎖、頁鎖、悲觀鎖、樂觀鎖、隱式鎖、顯示鎖、全域性鎖、死鎖)MySql
- Java併發-顯式鎖篇【可重入鎖+讀寫鎖】Java
- c++中的讀寫鎖C++
- 多執行緒與併發----讀寫鎖執行緒
- Go語言之讀寫鎖Go
- Go語言中的互斥鎖和讀寫鎖(Mutex和RWMutex)GoMutex
- MONGODB 讀寫佇列增高與寫延遲與多粒度鎖MongoDB佇列
- MySQL 悲觀鎖與樂觀鎖的詳解MySql
- 深刨顯式鎖ReentrantLock原理及其與內建鎖的區別,以及讀寫鎖ReentrantReadWriteLock使用場景ReentrantLock
- Concurrency(十五: Java中的讀寫鎖)Java
- ReentrantReadWriterLock原始碼(state設計、讀寫鎖、共享鎖、獨佔鎖及鎖降級)原始碼
- 從自旋鎖、睡眠鎖、讀寫鎖到 Linux RCU 機制講解Linux
- 【MySQL】MySQL(四)儲存引擎、索引、鎖、叢集MySql儲存引擎索引
- MySQL鎖等待與死鎖問題分析MySql
- 自旋鎖、阻塞鎖、可重入鎖、悲觀鎖、樂觀鎖、讀寫鎖、偏向所、輕量級鎖、重量級鎖、鎖膨脹、物件鎖和類鎖物件
- 面試官:你說說互斥鎖、自旋鎖、讀寫鎖、悲觀鎖、樂觀鎖的應用場景面試
- 總結MySQL儲存引擎MyISAM與InnoDB區別MySql儲存引擎
- Golang 讀寫鎖RWMutex 互斥鎖Mutex 原始碼詳解GolangMutex原始碼
- mysql鎖與會話MySql會話