欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql寫鎖的時候可讀嗎

阮建安2年前10瀏覽0評論

MySQL中鎖是用來控制數據并發更新的機制。在使用鎖的過程中,一般有兩種方式,一種是讀鎖(共享鎖),另外一種是寫鎖(排它鎖)。這里我們主要來看一下MySQL中寫鎖是否可讀。

在執行寫入操作時,MySQL會自動給該行記錄加上寫鎖,這時其他的事務無法讀取該行記錄,但是在事務提交之前,其他的事務也無法修改該行記錄。因此可以得出,在執行寫鎖操作的時候,該行記錄是不可讀的。

--假設有以下兩個SQL語句
transaction A: select * from table where id=1 for update;
transaction B: select * from table where id=1;
--在transaction A執行完的時候,該行記錄已經被加上了寫鎖,因此在transaction B中無法讀取該行記錄。

但是有一種特殊情況,就是事務在執行過程中對同一條記錄多次加寫鎖的情況,這時其他事務執行讀操作會讀取到該行記錄的最新值,這是由于之前的寫鎖未被釋放,在該事務中該記錄是可讀的。

--假設有以下兩個SQL語句
transaction A: select * from table where id=1 for update;
transaction A: select * from table where id=1 for update;
--在transaction A中,由于該事務對該行記錄使用了兩次寫鎖,因此另一事務依然可以讀取該行記錄的最新值。

綜上所述,MySQL中寫鎖的時候,該行記錄一般是不可讀的,但是在同一事務中的多次加寫鎖的情況下,該記錄是可讀的。