色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql改行鎖 不用表鎖

錢艷冰2年前8瀏覽0評論

什么是mysql改行鎖?

在mysql數(shù)據(jù)庫中,鎖的粒度可以是行級鎖或者是表級鎖。當(dāng)多個(gè)用戶同時(shí)修改同一行數(shù)據(jù)的時(shí)候,使用的是改行鎖,所以在繁忙的數(shù)據(jù)庫中,行級鎖成為了最好的解決方案。

改行鎖和表鎖的區(qū)別是什么?

相對于表鎖來說,改行鎖的鎖程度更低,只會(huì)對查詢或修改的行加鎖,其他的行依舊可以被其他的功能訪問和修改。這樣能夠大大提高數(shù)據(jù)庫的并發(fā)度,而表級鎖則是整張表被鎖定,此時(shí)除了操作線程,其他線程都不能再訪問這張表了。

mysql如何使用改行鎖?

在mysql中,使用改行鎖主要是通過以下方式實(shí)現(xiàn)的:

1. 設(shè)置事務(wù)的隔離級別

在使用mysql的事務(wù)中,可以設(shè)置不同的隔離級別,其中最高的是Serializable,這個(gè)級別下使用的就是行級鎖。

2. 取得鎖的方式

行級鎖可以通過下面兩種方式取得:

(1)用SELECT語句對某行加鎖:

SELECT * FROM table WHERE id = 1 FOR UPDATE;

(2)在事務(wù)中用UPDATE或DELETE命令對某行數(shù)據(jù)進(jìn)行修改的時(shí)候,該行就被鎖定。

改行鎖和表鎖的優(yōu)缺點(diǎn)?

改行鎖的優(yōu)點(diǎn)在于提供了更高的并發(fā)度,更多的線程可以在同時(shí)訪問數(shù)據(jù)庫的行中,不會(huì)互相影響。缺點(diǎn)在于維護(hù)鎖的代價(jià)較高,需要耗費(fèi)更多的系統(tǒng)開銷。

表級鎖與之相比,優(yōu)點(diǎn)在于簡潔高效,維護(hù)開銷較小,而缺點(diǎn)在于界定數(shù)據(jù)范圍較寬,整張表被鎖定后,其他的線程都不能再次訪問該表。這在高并發(fā)場景下會(huì)造成比較嚴(yán)重的問題。