您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“MySQL內部如何實現讀鎖和寫鎖”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL內部如何實現讀鎖和寫鎖”這篇文章吧。
對于MySQL數據庫讀鎖和寫鎖的加鎖方式,通過使用LOCK TABLE和UNLOCK TABLE來實現對表的加鎖和解鎖。
具體鎖定類型如下:
READ 普通讀鎖定
WRITE 普通寫鎖定
UNLOCK 釋放鎖定請求的交互用鎖類型
IGNORE 當發(fā)生鎖請求的時候內部交互使用,在鎖定結構和隊列中并不會有任何信息存儲
READ WITH SHARED_LOCKS 在InnoDB中使用,語法為:select .... lock in share mode;
READ_HIGH_PRIORITY 高優(yōu)先級讀鎖定
WRITE_LOW_PRIORITY 低優(yōu)先級寫鎖定,通過設置LOW_PRIORITY_UPDATE=1而產生
READ_NO_INSERT 不允許Concurrent Insert的鎖定
WRITE_ALLOW_WRITE 這個類型實際上就是由存儲引擎自行處理鎖定的時候,MySQL允許其他的線程再獲取讀或寫鎖定,即使有資源沖突,存儲引擎自行處理
WRITE_ALLOW_READ 這種鎖定發(fā)生在對表DDL操作時,MySQL可以允許其他線程獲取讀鎖定,因為MySQL是通過重建整張表然后再RENAME的方式實現該功能,因此這個過程表依然可以提供讀服務
WRITE_CONCURRENT_INSERT 正在運行Concurrent Insert時使用的鎖定方式,該鎖定進行時除了READ_NO_INSERT之外的其他任何讀鎖定請求都不會被阻塞
WRITE_DELAYED 在使用INSERT DELEAYED時發(fā)生的鎖定類型
WRITE_ONLY 當在操作過程中某個鎖定異常中斷之后系統內部需要進行CLOSE TABLE的操作,在這個過程中出現的鎖定類型就是WRITE_ONLY
以上是“MySQL內部如何實現讀鎖和寫鎖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。