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
- MySQL5.1 MyISAM與InnoDB 引擎讀寫效能對比薦MySql
- MySQL 5.5 MyISAM表鎖測試MySql
- MySQL優化篇系列文章(二)——MyISAM表鎖與InnoDB鎖問題MySql優化
- 讀寫鎖 ReentrantReadWriteLock 與 互斥鎖 的效率
- MYSQL引擎的鎖對比MySql
- MySQL內部實現讀鎖和寫鎖的具體鎖定型別介紹MySql型別
- Mysql innodb引擎(二)鎖MySql
- 淺談Java中的鎖:Synchronized、重入鎖、讀寫鎖Javasynchronized
- (MariaDB/MySQL)MyISAM儲存引擎讀、寫操作的優先順序MySql儲存引擎
- Java使用讀寫鎖替代同步鎖Java
- MySQL中MyISAM引擎與InnoDB引擎效能比較MySql
- mysql加鎖讀MySql
- Java中的讀/寫鎖Java
- 【JavaSE】Lock鎖和synchronized鎖的比較,lock鎖的特性,讀寫鎖的實現。Javasynchronized
- 庫存-Mysql中的事務、鎖與儲存引擎MySql儲存引擎
- MySQL儲存引擎MyISAM與InnoDB的優劣MySql儲存引擎
- MySQL鎖之三:MySQL的共享鎖與排它鎖編碼演示MySql
- MySQL鎖問題分析-全域性讀鎖MySql
- Java併發-顯式鎖篇【可重入鎖+讀寫鎖】Java
- MySQL鎖(讀鎖、共享鎖、寫鎖、S鎖、排它鎖、獨佔鎖、X鎖、表鎖、意向鎖、自增鎖、MDL鎖、RL鎖、GL鎖、NKL鎖、插入意向鎖、間隙鎖、頁鎖、悲觀鎖、樂觀鎖、隱式鎖、顯示鎖、全域性鎖、死鎖)MySql
- c++中的讀寫鎖C++
- MySQL的MYISAM引擎的索引方式MySql索引
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- 多執行緒與併發----讀寫鎖執行緒
- Java讀寫鎖ReadWriteLockJava
- Go語言之讀寫鎖Go
- 面試官:你說說互斥鎖、自旋鎖、讀寫鎖、悲觀鎖、樂觀鎖的應用場景面試
- Go語言中的互斥鎖和讀寫鎖(Mutex和RWMutex)GoMutex
- MONGODB 讀寫佇列增高與寫延遲與多粒度鎖MongoDB佇列
- 自旋鎖、阻塞鎖、可重入鎖、悲觀鎖、樂觀鎖、讀寫鎖、偏向所、輕量級鎖、重量級鎖、鎖膨脹、物件鎖和類鎖物件
- MySQL 悲觀鎖與樂觀鎖的詳解MySql
- MySQL鎖等待與死鎖問題分析MySql
- 【MySQL】MySQL(四)儲存引擎、索引、鎖、叢集MySql儲存引擎索引
- Mysql在InnoDB引擎下索引失效行級鎖變表鎖案例MySql索引
- Golang 讀寫鎖RWMutex 互斥鎖Mutex 原始碼詳解GolangMutex原始碼