黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

面試題首頁 > MySQL面試題

MySQL鎖面試題

001什么是數據庫鎖?

數據庫是一個多用戶使用的共享資源。當多個用戶并發地存取數據時,在數據庫中就會產生多個事務同時存取同一數據的情況。若對并發操作不加控制就可能會讀取和存儲不正確的數據,破壞數據庫的一致性。
加鎖是實現數據庫并發控制的一個非常重要的技術。當事務在對某個數據對象進行操作前,先向系統發出請求,對其加鎖。加鎖后事務就對該數據對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此數據對象進行更新操作。

002MySQL鎖分類?

1.從對數據操作的類型分類
讀鎖(共享鎖):針對同一份數據,多個讀操作可以同時進行,不會互相影響 
寫鎖(排他鎖):當前寫操作沒有完成前,它會阻斷其他寫鎖和讀鎖 
2.從對數據操作的范圍分類
為了盡可能提高數據庫的并發度,理論上每次只鎖定當前操作的數據,即每次鎖定的數據范圍越小就會得到最大的并發度,但是管理鎖是很耗資源的事情(涉及獲取,檢查,釋放鎖等動作),因此數據庫系統需要在高并發響應和系統性能兩方面進行平衡,這樣就產生了“鎖粒度(Lock granularity)”的概念。 
表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖沖突的概率最高,并發度最低(MyISAM 和 MEMORY 存儲引擎采用的是表級鎖);適合于以查詢為主,只有少量按索引條件更新數據的應用,如Web應用;
行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,并發度也最高(InnoDB 存儲引擎既支持行級鎖也支持表級鎖,但默認情況下是采用行級鎖); 適合于有大量按索引條件并發更新少量不同數據,同時又有并發查詢的應用,如一些在線事務處理(OLTP)系統。
頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現死鎖;鎖定粒度界于表鎖和行鎖之間,并發度一般。 

003悲觀鎖和樂觀鎖的區別?

悲觀鎖:每次去拿數據的時候都認為別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據都會block直到它拿到鎖。因此,悲觀鎖需要耗時比較的多,跟樂觀鎖比較,悲觀鎖是有數據庫自己實現的,用的時候我們直接調用數據的相關語句就可以。
樂觀鎖:用數據版本記錄機制實現,這是樂觀鎖最常用的方式,所謂的數據版本,為數據增加一個版本號的字段,一般是通過為數據表增加一個數據類型的version字段實現,當讀取數據時,將把二十年字段的值一同讀取出來,數據每次更新都需要對version值加一,在我們提交更新的時候,判斷數據表對應記錄的當前版本信息與第一次取出來的version值進行對比,如果數據庫的表當前版本號魚取出來的version值相等,則給與更新否則認為過期數據不給與更新。

004什么是數據庫死鎖?

是指二個或者二個以上的進程在執行時候,因為爭奪資源造成相互等待的現象,進程一直處于等待中,無法得到釋放,這種狀態就叫做死鎖。如批量入庫時,存在則更新,不存在則插入,insert into tab(xx,xx) on duplicate key update xx=‘xx’。

005如何查看死鎖?

1)使用命令 show engine innodb status 查看最近的一次死鎖。
2)InnoDB Lock Monitor 打開鎖監控,每 15s 輸出一次日志。使用完畢后建議關閉,否則會影響數據庫性能。

006數據庫死鎖如何處理?

1:通過innodblockwait_timeout來設置超時時間,一直等待直到超時。其中innodb默認是使用設置死鎖時間來讓死鎖超時的策略,默認innodblockwait_timeout設置的時長是50s。
2:發起死鎖檢測,發現死鎖之后,主動回滾死鎖中的事務,不需要其他事務繼續。

007如何避免數據庫死鎖?

1)為了在單個innodb表上執行多個并發寫入操作時避免死鎖,可以在事務開始時,通過為預期要修改行,使用select …for update語句來獲取必要的鎖,即使這些行的更改語句是在之后才執行的
2)在事務中,如果要更新記錄,應該直接申請足夠級別的鎖,即排他鎖,而不應先申請共享鎖,更新時在申請排他鎖。因為這時候當用戶在申請排他鎖時,其他事務可能又已經獲得了相同記錄的共享鎖,
3)如果事務需要修改或鎖定多個表,則應在每個事務中以相同的順序使用加鎖語句。在應用中,如果不同的程序會并發獲取多個表,應盡量約定以相同的順序來訪問表,這樣可以大大降低產生死鎖的機會。
4)通過 select …lock in share mode獲取行的讀鎖后,如果當前事務在需要對該記錄進行更新操作,則很有可能造成死鎖;
5)改變事務隔離級別.

目錄

返回頂部
主站蜘蛛池模板: 精品视频一区二区三三区四区 | 天天操天天噜 | 在线观看男女爱视频网站 | 成年美女黄网站色大免费观看软件 | 成年视频在线观看免费 | 2019中文字幕视频 | 黄色国产在线视频 | 91视频网址入口 | 亚洲福利精品一区二区三区 | 亚州黄色网址 | 久草手机视频在线 | 玖玖成人| 黄色成年人视频 | www.伦理片| 欧美日韩不卡视频一区二区三区 | 成人羞羞国产免费软件 | 亚洲国产情侣一区二区三区 | 国产二区三区毛片 | 男女啪啪后进式猛烈动态图 | 天天槽夜夜槽槽不停 | 91在线精品你懂的免费 | 5566成人免费视频观看 | 91成人免费版 | 九九九在线视频 | 午夜国产 | 日韩欧美精品中文字幕 | 欧美久久一区二区 | 国产精品动漫视频网站 | 日本成人社区 | 波多野衣结在线精品二区 | 免费看黄的网页 | 狠狠亚洲丁香综合久久 | 欧美精品在线观看视频 | 美女伊人网 | 国产第一页久久亚洲欧美国产 | 国产日韩欧美网站 | 资源在线www天堂 | 欧美日韩一区二区视频免费看 | 日韩美女一区二区三区 | 国产黄色片网站 | 久久精品一区二区国产 |