日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 锁(三)

發布時間:2024/1/8 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 锁(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 Mysql的鎖
對MySQL的鎖了解嗎
當數據庫有并發事務的時候,可能會產生數據的不一致,這時候需要一些機制來保證訪問的次序,鎖機制就是這樣的一個機制。

就像酒店的房間,如果大家隨意進出,就會出現多人搶奪同一個房間的情況,而在房間上裝上鎖,申請到鑰匙的人才可以入住并且將房間鎖起來,其他人只有等他使用完畢才可以再次使用。

隔離級別與鎖的關系
在Read Uncommitted級別下,讀取數據不需要加共享鎖,這樣就不會跟被修改的數據上的排他鎖沖突

在Read Committed級別下,讀操作需要加共享鎖,但是在語句執行完以后釋放共享鎖;

在Repeatable Read級別下,讀操作需要加共享鎖,但是在事務提交之前并不釋放共享鎖,也就是必須等待事務執行完畢以后才釋放共享鎖。

SERIALIZABLE 是限制性最強的隔離級別,因為該級別鎖定整個范圍的鍵,并一直持有鎖,直到事務完成。

按照鎖的粒度分數據庫鎖有哪些?鎖機制與InnoDB鎖算法
在關系型數據庫中,可以按照鎖的粒度把數據庫鎖分為行級鎖(INNODB引擎)、表級鎖(MYISAM引擎)和頁級鎖(BDB引擎 )。

MyISAM和InnoDB存儲引擎使用的鎖:

MyISAM采用表級鎖(table-level locking)。
InnoDB支持行級鎖(row-level locking)和表級鎖,默認為行級鎖
行級鎖,表級鎖和頁級鎖對比

行級鎖 行級鎖是Mysql中鎖定粒度最細的一種鎖,表示只針對當前操作的行進行加鎖。行級鎖能大大減少數據庫操作的沖突。其加鎖粒度最小,但加鎖的開銷也最大。行級鎖分為共享鎖 和 排他鎖。

特點:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,并發度也最高。

表級鎖 表級鎖是MySQL中鎖定粒度最大的一種鎖,表示對當前操作的整張表加鎖,它實現簡單,資源消耗較少,被大部分MySQL引擎支持。最常使用的MYISAM與INNODB都支持表級鎖定。表級鎖定分為表共享讀鎖(共享鎖)與表獨占寫鎖(排他鎖)。

特點:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發出鎖沖突的概率最高,并發度最低。

頁級鎖 頁級鎖是MySQL中鎖定粒度介于行級鎖和表級鎖中間的一種鎖。表級鎖速度快,但沖突多,行級沖突少,但速度慢。所以取了折衷的頁級,一次鎖定相鄰的一組記錄。

特點:開銷和加鎖時間界于表鎖和行鎖之間;會出現死鎖;鎖定粒度界于表鎖和行鎖之間,并發度一般

從鎖的類別上分MySQL都有哪些鎖呢?像上面那樣子進行鎖定豈不是有點阻礙并發效率了
從鎖的類別上來講,有共享鎖和排他鎖。

共享鎖: 又叫做讀鎖。 當用戶要進行數據的讀取時,對數據加上共享鎖。共享鎖可以同時加上多個。

排他鎖: 又叫做寫鎖。 當用戶要進行數據的寫入時,對數據加上排他鎖。排他鎖只可以加一個,他和其他的排他鎖,共享鎖都相斥。

用上面的例子來說就是用戶的行為有兩種,一種是來看房,多個用戶一起看房是可以接受的。 一種是真正的入住一晚,在這期間,無論是想入住的還是想看房的都不可以。

鎖的粒度取決于具體的存儲引擎,InnoDB實現了行級鎖,頁級鎖,表級鎖。

他們的加鎖開銷從大到小,并發能力也是從大到小。

MySQL中InnoDB引擎的行鎖是怎么實現的?
答:InnoDB是基于索引來完成行鎖

例: select * from tab_with_index where id = 1 for update;

for update 可以根據條件來完成行鎖鎖定,并且 id 是有索引鍵的列,如果 id 不是索引鍵那么InnoDB將完成表鎖,并發將無從談起

InnoDB存儲引擎的鎖的算法有三種
Record lock:單個行記錄上的鎖
Gap lock:間隙鎖,鎖定一個范圍,不包括記錄本身
Next-key lock:record+gap 鎖定一個范圍,包含記錄本身
相關知識點:

innodb對于行的查詢使用next-key lock
Next-locking keying為了解決Phantom Problem幻讀問題
當查詢的索引含有唯一屬性時,將next-key lock降級為record key
Gap鎖設計的目的是為了阻止多個事務將記錄插入到同一范圍內,而這會導致幻讀問題的產生
有兩種方式顯式關閉gap鎖:(除了外鍵約束和唯一性檢查外,其余情況僅使用record lock) A. 將事務隔離級別設置為RC B. 將參數innodb_locks_unsafe_for_binlog設置為1
什么是死鎖?怎么解決?
死鎖是指兩個或多個事務在同一資源上相互占用,并請求鎖定對方的資源,從而導致惡性循環的現象。

常見的解決死鎖的方法

1、如果不同程序會并發存取多個表,盡量約定以相同的順序訪問表,可以大大降低死鎖機會。

2、在同一個事務中,盡可能做到一次鎖定所需要的所有資源,減少死鎖產生概率;

3、對于非常容易產生死鎖的業務部分,可以嘗試使用升級鎖定顆粒度,通過表級鎖定來減少死鎖產生的概率;

如果業務處理不好可以用分布式事務鎖或者使用樂觀鎖

數據庫的樂觀鎖和悲觀鎖是什么?怎么實現的?
數據庫管理系統(DBMS)中的并發控制的任務是確保在多個事務同時存取數據庫中同一數據時不破壞事務的隔離性和統一性以及數據庫的統一性。樂觀并發控制(樂觀鎖)和悲觀并發控制(悲觀鎖)是并發控制主要采用的技術手段。

悲觀鎖:假定會發生并發沖突,屏蔽一切可能違反數據完整性的操作。在查詢完數據的時候就把事務鎖起來,直到提交事務。實現方式:使用數據庫中的鎖機制

樂觀鎖:假設不會發生并發沖突,只在提交操作時檢查是否違反數據完整性。在修改數據的時候把事務鎖起來,通過version的方式來進行鎖定。實現方式:樂一般會使用版本號機制或CAS算法實現。

兩種鎖的使用場景

從上面對兩種鎖的介紹,我們知道兩種鎖各有優缺點,不可認為一種好于另一種,像樂觀鎖適用于寫比較少的情況下(多讀場景),即沖突真的很少發生的時候,這樣可以省去了鎖的開銷,加大了系統的整個吞吐量。

但如果是多寫的情況,一般會經常產生沖突,這就會導致上層應用會不斷的進行retry,這樣反倒是降低了性能,所以一般多寫的場景下用悲觀鎖就比較合適。

總結

以上是生活随笔為你收集整理的mysql 锁(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天爽天天爱 | 精品一区三区 | 91亚洲一区二区 | 美女av网址 | 亚洲va欧美va天堂v国产综合 | 性做爰视频免费播放大全 | 黑色丝袜吻戏亲胸摸腿 | 国产视频一区在线 | 天天操婷婷 | 国产91精品久久久久久久 | 日韩综合另类 | 国产成人精品免高潮在线观看 | 中文字幕在线视频精品 | 三级av毛片 | 欧美日韩亚洲一区 | 小泽玛丽亚在线观看 | 欧美精品videosex极品 | 青青草在线播放 | 制服.丝袜.亚洲.中文.综合 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲一区二区偷拍 | 日本一二三区视频 | www国产精品视频 | www.欧美亚洲 | 国产日韩视频 | 亚洲春色在线观看 | 在线观看欧美视频 | 亚洲精品字幕在线 | 日本丰满肉感bbwbbwbbw | h片观看| 国产天堂 | 亚洲三级理论 | 色婷婷午夜 | 天天爽夜夜爽夜夜爽 | 永久免费未满蜜桃 | 在线看片你懂得 | 性色网站 | 永久免费av无码网站性色av | 91在线视频免费看 | 成人在线不卡视频 | 日韩成人福利视频 | 国产裸体视频 | 黄色av网址大全 | 久久久精品中文字幕麻豆发布 | 被扒开腿一边憋尿一边惩罚 | 国产精品尤物视频 | 三年中文在线观看免费观看 | 国产一区二区视频在线免费观看 | 久久久久久91 | 国产精品毛片视频 | 男人阁久久 | 美女隐私黄www网站动漫 | jizzjizz免费| 中文字幕在线观看网址 | 欧美大喷水吹潮合集在线观看 | 成人午夜一区 | 看免费一级片 | 91精品国产综合久久久久久久 | 中文字幕啪啪 | 精品美女久久 | 美女视频毛片 | 国产经典久久 | 久久婷婷五月综合色国产香蕉 | 亚洲操 | 蘑菇福利视频一区播放 | 欧美性生交大片免费看app麻豆 | 久久久久久亚洲中文字幕无码 | 色综合一区二区 | 极品美女开粉嫩精品 | 欧美日韩人妻精品一区二区 | 在线免费观看av网址 | 国产色播av在线 | jjzzjjzz欧美69巨大 | 欧美成人一二三区 | 欧美抠逼视频 | 日欧一级片 | 欧美午夜精品久久久久久人妖 | 激情午夜av | 免费成人av在线播放 | 国产做受高潮动漫 | 精品无码一区二区三区电影桃花 | 无码人妻丰满熟妇精品 | 亚洲成人另类 | 亚洲视频手机在线 | 国产在线精品一区二区三区 | 亚洲高潮无码久久 | 夜夜骚网站 | 中文字幕一区二区人妻在线不卡 | 亚洲精品日韩在线 | 亚洲婷婷久久综合 | jjzz黄色片| 91黑人精品一区二区三区 | 一本之道高清无码视频 | 黄色一级免费观看 | 草草影院在线观看 | 国产精品久久久久久久av福利 | 在线视频麻豆 | 男女视频久久 | 中文字幕亚洲国产 |