亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

mysql數據庫鎖的產生原因及解決辦法

2024-07-24 13:08:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了mysql數據庫鎖的產生原因及解決辦法,需要的朋友可以參考下
 

數據庫和操作系統一樣,是一個多用戶使用的共享資源。當多個用戶并發地存取數據 時,在數據庫中就會產生多個事務同時存取同一數據的情況。若對并發操作不加控制就可能會讀取和存儲不正確的數據,破壞數據庫的一致性。加鎖是實現數據庫并 發控制的一個非常重要的技術。在實際應用中經常會遇到的與鎖相關的異常情況,當兩個事務需要一組有沖突的鎖,而不能將事務繼續下去的話,就會出現死鎖,嚴 重影響應用的正常執行。

在數據庫中有兩種基本的鎖類型:排它鎖(Exclusive Locks,即X鎖)和共享鎖(Share Locks,即S鎖)。當數據對象被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的數據對象可以被其他事務讀取,但不能修改。數據庫利用這兩 種基本的鎖類型來對數據庫的事務進行并發控制。

死鎖的第一種情況

一個用戶A 訪問表A(鎖住了表A),然后又訪問表B;另一個用戶B 訪問表B(鎖住了表B),然后企圖訪問表A;這時用戶A由于用戶B已經鎖住表B,它必須等待用戶B釋放表B才能繼續,同樣用戶B要等用戶A釋放表A才能繼續,這就死鎖就產生了。

解決方法:

這種死鎖比較常見,是由于程序的BUG產生的,除了調整的程序的邏輯沒有其它的辦法。仔細分析程序的邏輯,對于數據庫的多表操作時,盡量按照相同的順序進 行處理,盡量避免同時鎖定兩個資源,如操作A和B兩張表時,總是按先A后B的順序處理, 必須同時鎖定兩個資源時,要保證在任何時刻都應該按照相同的順序來鎖定資源。

死鎖的第二種情況

用戶A查詢一條紀錄,然后修改該條紀錄;這時用戶B修改該條紀錄,這時用戶A的事務里鎖的性質由查詢的共享鎖企圖上升到獨占鎖,而用戶B里的獨占鎖由于A 有共享鎖存在所以必須等A釋放掉共享鎖,而A由于B的獨占鎖而無法上升的獨占鎖也就不可能釋放共享鎖,于是出現了死鎖。這種死鎖比較隱蔽,但在稍大點的項 目中經常發生。如在某項目中,頁面上的按鈕點擊后,沒有使按鈕立刻失效,使得用戶會多次快速點擊同一按鈕,這樣同一段代碼對數據庫同一條記錄進行多次操 作,很容易就出現這種死鎖的情況。

解決方法:

1、對于按鈕等控件,點擊后使其立刻失效,不讓用戶重復點擊,避免對同時對同一條記錄操作。
2、使用樂觀鎖進行控制。樂觀鎖大多是基于數據版本(Version)記錄機制實現。即為數據增加一個版本標識,在基于數據庫表的版本解決方案中,一般是 通過為數據庫表增加一個“version”字段來實現。讀取出數據時,將此版本號一同讀出,之后更新時,對此版本號加一。此時,將提交數據的版本數據與數 據庫表對應記錄的當前版本信息進行比對,如果提交的數據版本號大于數據庫表當前版本號,則予以更新,否則認為是過期數據。樂觀鎖機制避免了長事務中的數據 庫加鎖開銷(用戶A和用戶B操作過程中,都沒有對數據庫數據加鎖),大大提升了大并發量下的系統整體性能表現。Hibernate 在其數據訪問引擎中內置了樂觀鎖實現。需要注意的是,由于樂觀鎖機制是在我們的系統中實現,來自外部系統的用戶更新操作不受我們系統的控制,因此可能會造 成臟數據被更新到數據庫中。
3、使用悲觀鎖進行控制。悲觀鎖大多數情況下依靠數據庫的鎖機制實現,如Oracle的Select … for update語句,以保證操作最大程度的獨占性。但隨之而來的就是數據庫性能的大量開銷,特別是對長事務而言,這樣的開銷往往無法承受。如一個金融系統, 當某個操作員讀取用戶的數據,并在讀出的用戶數據的基礎上進行修改時(如更改用戶賬戶余額),如果采用悲觀鎖機制,也就意味著整個操作過程中(從操作員讀 出數據、開始修改直至提交修改結果的全過程,甚至還包括操作員中途去煮咖啡的時間),數據庫記錄始終處于加鎖狀態,可以想見,如果面對成百上千個并發,這 樣的情況將導致災難性的后果。所以,采用悲觀鎖進行控制時一定要考慮清楚。

死鎖的第三種情況

如果在事務中執行了一條不滿足條件的update語句,則執行全表掃描,把行級鎖上升為表級鎖,多個這樣的事務執行后,就很容易產生死鎖和阻塞。類似的情 況還有當表中的數據量非常龐大而索引建的過少或不合適的時候,使得經常發生全表掃描,最終應用系統會越來越慢,最終發生阻塞或死鎖。

解決方法:

SQL語句中不要使用太復雜的關聯多表的查詢;使用“執行計劃”對SQL語句進行分析,對于有全表掃描的SQL語句,建立相應的索引進行優化。
5.小結
總體上來說,產生內存溢出與鎖表都是由于代碼寫的不好造成的,因此提高代碼的質量是最根本的解決辦法。有的人認為先把功能實現,有BUG時再在測試階段進 行修正,這種想法是錯誤的。正如一件產品的質量是在生產制造的過程中決定的,而不是質量檢測時決定的,軟件的質量在設計與編碼階段就已經決定了,測試只是 對軟件質量的一個驗證,因為測試不可能找出軟件中所有的BUG。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女主播视频| 久久久久久国产精品三级玉女聊斋| 午夜精品久久久久久久99热| 亚洲欧美日韩爽爽影院| 国产视频丨精品|在线观看| 亚洲欧美日韩爽爽影院| 精品偷拍一区二区三区在线看| 欧美性猛交xxxx免费看漫画| 亚洲午夜色婷婷在线| 亚洲三级免费看| 欧美专区福利在线| 国产成人综合一区二区三区| 亚洲黄色www| 亚洲毛茸茸少妇高潮呻吟| 欧美激情小视频| 精品调教chinesegay| 激情亚洲一区二区三区四区| 国产精品久久久久久久久久| 久久精品国产免费观看| 91在线观看免费网站| 粉嫩老牛aⅴ一区二区三区| 538国产精品视频一区二区| 欧美在线激情视频| 中文字幕在线看视频国产欧美在线看完整| 这里只有视频精品| 日韩视频永久免费观看| 97成人在线视频| 亚洲一区中文字幕在线观看| 中国china体内裑精亚洲片| 久久国产精彩视频| 亚洲黄色av女优在线观看| 欧洲中文字幕国产精品| 久久成人免费视频| 久久久国产成人精品| 亚洲日本欧美日韩高观看| 亚洲综合精品一区二区| 成人激情视频小说免费下载| 久久黄色av网站| 欧美极品第一页| 一区二区三欧美| 91成人天堂久久成人| 日韩理论片久久| 欧美专区在线播放| 日韩国产一区三区| 性色av一区二区三区| 国产噜噜噜噜久久久久久久久| 国产成人精品免高潮费视频| 欧美午夜精品在线| 91久久久久久久久久久久久| 国产欧美一区二区白浆黑人| 国产精品一香蕉国产线看观看| 国产成人啪精品视频免费网| 欧美日韩亚洲一区二| 国语自产精品视频在线看一大j8| 欧美性猛交xxxxx免费看| 欧美视频一二三| 精品人伦一区二区三区蜜桃免费| 在线播放日韩专区| 国产日韩欧美影视| 国产一区二区久久精品| 亚洲天堂av在线免费| 亚洲a区在线视频| 日韩美女在线看| 日韩av在线一区| 欧美乱大交做爰xxxⅹ性3| 亚洲国产日韩一区| 国产精品午夜视频| 日韩在线视频线视频免费网站| 久久久久亚洲精品成人网小说| 久久精品男人天堂| 国产国语刺激对白av不卡| 国产亚洲欧美另类中文| 亚洲欧美日韩精品久久奇米色影视| 日韩中文在线中文网在线观看| 97精品国产97久久久久久免费| 国产精品入口夜色视频大尺度| 亚洲最大福利视频网站| 久久五月天色综合| 日韩在线免费av| 国产精品美女无圣光视频| 日韩三级影视基地| 亚洲欧美日本精品| 中文字幕av一区二区三区谷原希美| 国产精品福利观看| 久久久久久久久久亚洲| 国产精品欧美在线| 中文字幕亚洲激情| 亚洲视频在线观看免费| 日韩电影中文字幕一区| 欧美精品久久久久久久免费观看| 精品一区二区三区四区在线| 久久久久中文字幕2018| 欧美国产精品va在线观看| 亚洲成人国产精品| 久久久久九九九九| 美女视频黄免费的亚洲男人天堂| 欧美专区日韩视频| 中日韩美女免费视频网址在线观看| 日韩欧美在线视频免费观看| 成人福利网站在线观看11| 深夜精品寂寞黄网站在线观看| 国产精品免费视频久久久| 久久久国产精品亚洲一区| 亚洲福利影片在线| 欧美精品一区在线播放| 国产精品直播网红| 91久久国产精品91久久性色| 色婷婷av一区二区三区久久| 亚洲精品一二区| 日本三级韩国三级久久| 日韩国产高清污视频在线观看| 日韩精品在线观看一区二区| 欧美大片va欧美在线播放| 岛国av一区二区三区| 久久色精品视频| 亚洲天堂男人天堂| 2019精品视频| 欧美午夜丰满在线18影院| 欧美日韩精品在线播放| 欧美国产日产韩国视频| 日av在线播放中文不卡| 日韩在线免费观看视频| 日韩av色在线| 国产视频在线观看一区二区| 91成人天堂久久成人| 最近免费中文字幕视频2019| 亚洲成人黄色在线| 精品国产一区二区三区久久久| 日韩禁在线播放| 午夜精品视频网站| 欧美一级淫片videoshd| 动漫精品一区二区| 亚洲欧洲国产伦综合| 国产精品27p| 亚洲视频欧美视频| 精品国产乱码久久久久久天美| 国产亚洲视频在线| 欧美性生交大片免费| y97精品国产97久久久久久| 68精品久久久久久欧美| 欧美成人精品一区二区| 亚洲午夜未满十八勿入免费观看全集| www.欧美三级电影.com| 中文字幕欧美日韩在线| 久久久久国产精品www| 欧美精品福利视频| 91精品国产91久久久久久吃药| 亚洲国模精品私拍| 亚洲国产精品电影在线观看| 国产伊人精品在线| 久久久久久亚洲精品不卡| 久久精品国产亚洲一区二区| 日本精品久久久| 国产91在线播放精品91| 亚洲自拍av在线| 欧美精品一区二区三区国产精品| 亚洲精品久久视频| 欧美激情中文网| 日韩欧美黄色动漫| 日韩av中文在线| 亚洲美女精品久久| 91免费看片在线| 97色在线视频观看| 色综合亚洲精品激情狠狠|