mysql共享鎖

共享鎖

共享鎖指的就是對于多個不同的事務,對同一個資源共享同一個鎖。相當于對于同一把門,它擁有多個鑰匙一樣。就像這樣,你家有一個大門,大門的鑰匙有好幾把,你有一把,你女朋友有一把,你們都可能通過這把鑰匙進入你們家,進去啪啪啪啥的,一下理解了哈,沒錯,這個就是所謂的共享鎖。

剛剛說了,對于悲觀鎖,一般數據庫已經實現了,共享鎖也屬于悲觀鎖的一種,那么共享鎖在mysql中是通過什么命令來調用呢。通過查詢資料,了解到通過在執行語句后面加上lock in share mode就代表對某些資源加上共享鎖了。

比如,我這里通過mysql打開兩個查詢編輯器,在其中開啟一個事務,并不執行commit語句

city表DDL如下:

CREATE TABLE `city` ( `id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT, `name` VARCHAR ( 255 ) DEFAULT NULL, `state` VARCHAR ( 255 ) DEFAULT NULL, PRIMARY KEY ( `id` ) ) ENGINE = INNODB AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8;

設置一個id為1的數據

begin;
SELECT * from city where id = "1" ?lock in share mode;

?

?

然后在另一個查詢窗口中,對id為1的數據進行更新

update ?city set name="666" where id ="1";

此時,操作界面進入了卡頓狀態,過幾秒后,也提示錯誤信息

1205 - Lock wait timeout exceeded; try restarting transaction, Time: 51.119000s

?

?

?

那么證明,對于id=1的記錄加鎖成功了,在上一條記錄還沒有commit之前,這條id=1的記錄被鎖住了,只有在上一個事務釋放掉鎖后才能進行操作,或用共享鎖才能對此數據進行操作。

再實驗一下:

加上共享鎖后,也提示錯誤信息了,通過查詢資料才知道,對于update,insert,delete語句會自動加排它鎖的原因

?

于是,我又試了試SELECT * from city where id = "1" lock in share mode;

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270409.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YII2 隨筆 視圖最佳實踐

yii\base\Controller::render(): 渲染一個 視圖名 并使用一個 布局 返回到渲染結果。yii\base\Controller::renderPartial(): 渲染一個 視圖名 并且不使用布局。yii\web\Controller::renderAjax(): 渲染一個 視圖名 并且不使用布局, 并注入所有注冊的JS/CSS腳本和文…

網絡技巧:無線路由器越用越慢的解決方法

目錄 01 ???????路由器越用越慢很平常 02 國區設置不要亂用 03 很容易被遺忘的IPv6設置 04 學會自我檢查掉線問題 05 番外篇:測試自己的網速 “耳機、音箱通過一定時間的煲機,表現效果會變好,可為何家里WiFi網絡卻老是給人越用越慢、越…

Mac軟件:15個提升辦公效率的軟件

目錄 1.解壓軟件:RAR Extractor - The Unarchiver Pro 2.實用清理軟件:CleanMyMac X 3.水族屏保軟件:Desktop Aquarium Wallpaper?s 4.桌面圖標隱藏工具:Desktop Curtain 5.剪貼板工具:Paste 6.快捷鍵查看軟件:Cheats…

樂觀鎖介紹

1.樂觀鎖介紹 樂觀鎖( Optimistic Locking ) 相對悲觀鎖而言,樂觀鎖假設認為數據一般情況下不會造成沖突,所以在數據進行提交更新的時候,才會正式對數據的沖突與否進行檢測,如果發現沖突了,則讓…

從0開始學習 GitHub 系列之「03.Git 速成」

前面的 GitHub 系列文章介紹過,GitHub 是基于 Git 的,所以也就意味著 Git 是基礎,如果你不會 Git ,那么接下來你完全繼續不下去,所以今天的教程就來說說 Git ,當然關于 Git 的知識單憑一篇文章肯定說不完的…

linux看缺省的編譯器,修改Linux系統默認編輯器

pip和requests模塊的安裝1.配置python的環境變量 在path中加入pyhton的環境變量,如我的是E:\Python27 2. 如果沒有pip,一個幫助軟件管理的東東(現在的版本一般有,若有跳到3) 去https:// ...sp_who_lockUSE MyDataBase GO /****** Object: StoredProcedur…

Spring系列(一):Spring相關知識介紹筆記

目錄 1、Srping概念 2、Spring原理 2.1 控制反轉(Inversion of control)(IOC) 2.2 面向切面編程(Aspect-Oriented Programming)(AOP) 3、Spring框架結構 4、Srping生命周期 4、Srping有什么優勢? 4.1、非侵入式設計 4.…

SDUT 3400 數據結構實驗之排序三:bucket sort

數據結構實驗之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KBSubmit StatisticProblem Description 根據人口普查結果,知道目前淄博市大約500萬人口,你的任務是幫助人口普查辦公室按年齡遞增的順序輸出每個年齡有多少人&#…

nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException(Spring循環依賴問題)

1:問題 最近啟動項目時候,遇到如下報錯 nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name stockReceiptManager: Bean with name stockReceiptManager has been injected the bean. Thi…

linux分區設置大小,Linux調整磁盤分區大小

Resize the disk (Linux調整磁盤分區大小)Resize the partition. Run parted: $ partedShow the partition list: (parted) printThere should be two partitions; 1 should be a boot partition, about 64MB; the second should be the main partition, about 3.6GSome Disk C…

電腦技巧:盤點常用的Win組合快捷鍵

今天給大家繼續分享電腦使用技巧,給大家介紹一下有哪些常用Win組合快捷鍵,希望可以對大家的日常辦公提高幫助! 1、WinE:打開我的電腦 超級實用的一個組合鍵,不論你當前在操作什么,只要按下這個組合鍵&#…

簡單正則替換

var reganew RegExp(" ","g"); //創建正則RegExp對象 ntrstrntrstr.replace(rega,""); var regbnew RegExp(" ","g"); //創建正則RegExp對象 ntrstrntrstr.replace(regb,""); var regcnew Reg…

電腦技巧:電腦安裝操作系統、重裝系統常見的問題解決方法

目錄 1、提示權限不足 2、添加PE開機引導菜單失敗 3、磁盤格式錯誤 4、除系統盤外,未找到任何其他非系統磁盤分區 5、計算機意外地重新啟動或遇到錯誤 6、windows無法完成安裝 7、U盤安裝系統時出現如下圖錯誤 8、下載速度慢、卡住 重裝系統現在也不是什么難事&…

linux開發板上程序如何調試,linux開發板調試典型方法

tftpdsudo apt-get install tftpd openbsd-inetd將/etc/inetd.conf中的最后一個路徑設置成你希望讓客戶端存取文件的目錄例如下面的“/tftpboot”(記得開放該目錄的讀寫權限):“tftp dgram udp wait nobody /usr/sbin/t…

電腦技巧:Win10電腦卡頓解決小技巧,非常實用

目錄 1、及時關閉不常用的后臺進程 2、建議打開GPU硬件加速功能 3、及時更新升級硬件驅動 4、適當降低Windows動畫特效 5、開啟Windows自帶的游戲模式 電腦用的時間越久就會越卡頓了,今天小編給大家分享五個小技巧,來解決電腦卡頓的問題,有需…

線程其實就是一個個指令組成的,當這個線程內的指令全部執行完了,那么這個線程也就執行結束了

線程其實就是一個個指令組成的,當這個線程內的指令全部執行完了,那么這個線程也就執行結束了

page,client,offset區別

offset:相對于當前“盒子”的距離 &#xff0c;與滾動條無關 client:相對于可視區域的距離&#xff0c;與滾動條無關 page:相對于整個頁面的距離&#xff0c;與滾動條有關 示例代碼&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 …

linux netbeans 中文亂碼,淺談Linux Netbeans字體反鋸齒處理

用的Linux發行版是Ubuntu8.04&#xff0c;如果使用源里面的JDK一切都很簡單(現在源里的版本是1.6u6)&#xff0c;JDK6開始支持反鋸齒。裝完Netbeans你就會驚喜的發現&#xff0c;仿原生GUI的界面(GTK&#xff0b;)上的文字是反鋸齒的&#xff0c;但是編輯器里面的文字是鋸齒的&…

Win10軟件:推薦兩款Windows操作系統下的遠程軟件,值得收藏!

遠程控制軟件是程序員日常必備的工具&#xff0c;現場市面上有微軟自帶的遠程連接工具、向日葵、teamviewer等遠程控制軟件。他們都有一個共同的缺點&#xff0c;無法針對遠程連接設置分組、別名。大多數情況下&#xff0c;我們可能需要連接十幾個甚至幾十個Windows遠程服務器。…

開發機多用戶 xdebug 遠程調試 PhpStorm

在公司都用的遠程開發機開發&#xff0c;每次有錯誤調試就得dd(xxx)然后保存真是&#xff0c;讓我在本地開發用慣xdebug的情何以堪&#xff0c;所以有了下文。 1.安裝配置xdebug 直接使用pecl安裝即可# pecl install xdebug 然后寫xdebug配置&#xff0c;下面是我的設置(具體擴…