mysql加鎖語(yǔ)句 MYSQL事務(wù)與鎖,需要手動(dòng)加鎖嗎?
MYSQL事務(wù)與鎖,需要手動(dòng)加鎖嗎?事務(wù)中鎖事務(wù)的四個(gè)隔離級(jí)別對(duì)應(yīng)不同的鎖機(jī)制:read uncommitted、read committed、repeatable read和serializable
MYSQL事務(wù)與鎖,需要手動(dòng)加鎖嗎?
事務(wù)中鎖事務(wù)的四個(gè)隔離級(jí)別對(duì)應(yīng)不同的鎖機(jī)制:read uncommitted、read committed、repeatable read和serializable(repeatable)這兩個(gè)事務(wù)隔離級(jí)別(read和serializable)不需要手動(dòng)鎖定。在我看來(lái),鎖定這兩個(gè)事務(wù)級(jí)別是沒(méi)有意義的,因?yàn)槠渌麜?huì)話中的事務(wù)無(wú)法獲得在這兩個(gè)事務(wù)中執(zhí)行的數(shù)據(jù)。(可重復(fù)讀取和序列化)始終獲取原始數(shù)據(jù)。
mysql select語(yǔ)句會(huì)不會(huì)被阻塞呢?
首先,我們需要了解什么是阻塞,因?yàn)椴煌i之間的兼容性關(guān)系。在某些情況下,一個(gè)事務(wù)中的鎖需要等待另一個(gè)事務(wù)中的鎖釋放它占用的資源。這是阻塞。阻塞不是壞事,它可以確保事務(wù)的安全執(zhí)行。默認(rèn)的選擇是一個(gè)共享鎖,它不會(huì)導(dǎo)致阻塞。但是,在一些實(shí)際應(yīng)用場(chǎng)景中,我們需要手動(dòng)鎖定,特別是需要更新時(shí),通常需要使用select進(jìn)行檢索。此時(shí),在執(zhí)行更新之前,為了保證數(shù)據(jù)的準(zhǔn)確性,我們通常會(huì)手動(dòng)鎖定數(shù)據(jù)。在這個(gè)時(shí)候,如果有其他選擇來(lái)訪問(wèn)它將要阻止的項(xiàng)目數(shù)。