真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql中怎么實(shí)現(xiàn)共享鎖和排他鎖

MySQL中怎么實(shí)現(xiàn)共享鎖和排他鎖,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)定興,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

共享鎖(Share Lock)

共享鎖又稱讀鎖,簡稱 S 鎖:一個(gè)事務(wù)獲取了一個(gè)數(shù)據(jù)行的共享鎖,其他事務(wù)能獲得該行對應(yīng)的共享鎖,但不能獲得排他鎖,即一個(gè)事務(wù)在讀取一個(gè)數(shù)據(jù)行的時(shí)候,其他事務(wù)可以并發(fā)讀取數(shù)據(jù),但不能對該數(shù)據(jù)行進(jìn)行增刪改,直到已釋放所有共享鎖

如果事務(wù) T 對數(shù)據(jù) A 加上共享鎖后,則其他事務(wù)只能對 A 再加共享鎖,不能加排他鎖。獲取共享鎖的事務(wù)只能讀數(shù)據(jù),不能修改數(shù)據(jù)

在查詢語句后面增加LOCK IN SHARE MODE,MySQL 會(huì)對查詢結(jié)果中的每行都加共享鎖,當(dāng)沒有其他線程對查詢結(jié)果集中的任何一行使用排他鎖時(shí),可以成功申請共享鎖,否則會(huì)被阻塞。其他線程也可以讀取使用了共享鎖的表,而且這些線程讀取的是同一個(gè)版本的數(shù)據(jù)

排他鎖(eXclusive Lock)

排他鎖又稱寫鎖,簡稱 X 鎖:一個(gè)事務(wù)獲取了一個(gè)數(shù)據(jù)行的排他鎖,其他事務(wù)就不能再獲取該行的其他鎖(排他鎖或者共享鎖),即一個(gè)事務(wù)在讀取一個(gè)數(shù)據(jù)行的時(shí)候,其他事務(wù)不能對該數(shù)據(jù)行進(jìn)行增刪改查

如果事務(wù) T 對數(shù)據(jù) A 加上排他鎖后,則其他事務(wù)不能再對 A 加任何類型的封鎖。獲取排他鎖的事務(wù)既能讀數(shù)據(jù),又能修改數(shù)據(jù)

在查詢語句后面增加FOR UPDATE,MySQL 會(huì)對查詢結(jié)果中的每行都加排他鎖,當(dāng)沒有其他線程對查詢結(jié)果集中的任何一行使用排他鎖時(shí),可以成功申請排他鎖,否則會(huì)被阻塞

意向鎖

意向鎖是表級(jí)鎖,其設(shè)計(jì)目的主要是為了在一個(gè)事務(wù)中揭示下一行將要被請求鎖的類型。InnoDB 中的兩個(gè)表鎖:

意向共享鎖(IS):表示事務(wù)準(zhǔn)備給數(shù)據(jù)行加入共享鎖,也就是說一個(gè)數(shù)據(jù)行加共享鎖前必須先取得該表的 IS 鎖。如果需要對記錄 A 加共享鎖,那么此時(shí) InnoDB 會(huì)先找到這張表,對該表加意向共享鎖之后,再對記錄 A 添加共享鎖

意向排他鎖(IX):類似上面,表示事務(wù)準(zhǔn)備給數(shù)據(jù)行加入排他鎖,也就是說事務(wù)在給一個(gè)數(shù)據(jù)行加排他鎖前必須先取得該表的 IX 鎖。如果需要對記錄 A 加排他鎖,那么此時(shí) InnoDB 會(huì)先找到這張表,對該表加意向排他鎖之后,再對記錄 A 添加排他鎖

意向鎖是 InnoDB 自動(dòng)加的,不需要用戶干預(yù)

注意點(diǎn)

  • 對于 insert、update、delete,InnoDB 會(huì)自動(dòng)給涉及的數(shù)據(jù)加排他鎖(X),只有查詢 select 需要我們手動(dòng)設(shè)置排他鎖

  • 對于一般的 select 語句,InnoDB 不會(huì)加任何鎖,也就是可以多個(gè)并發(fā)去進(jìn)行 select 的操作,不會(huì)有任何的鎖沖突,因?yàn)楦緵]有鎖

如何設(shè)置共享鎖和排他鎖?
共享鎖:SELECT ... LOCK IN SHARE MODE;
排他鎖:SELECT ... FOR UPDATE;

總結(jié)

  • 共享鎖和排他鎖,系統(tǒng)在特定的條件下會(huì)自動(dòng)添加共享鎖或者排他鎖,也可以手動(dòng)添加共享鎖或者排他鎖。
    意向共享鎖和意向排他鎖都是系統(tǒng)自動(dòng)添加和自動(dòng)釋放的,整個(gè)過程無需人工干預(yù)

  • 共享鎖和排他鎖都是鎖的行記錄,意向共享鎖和意向排他鎖鎖定的是表

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


網(wǎng)站標(biāo)題:mysql中怎么實(shí)現(xiàn)共享鎖和排他鎖
轉(zhuǎn)載來于:http://weahome.cn/article/giiiij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部