mysql高并發(fā)寫入 MYSQL-Innodb下,update的并發(fā)是否會(huì)產(chǎn)生臟數(shù)據(jù)?
MYSQL-Innodb下,update的并發(fā)是否會(huì)產(chǎn)生臟數(shù)據(jù)?在MySQL并發(fā)數(shù)據(jù)更新的情況下,通常不會(huì)添加臟數(shù)據(jù)。但是,有一種情況不排除,即如果程序邏輯是判斷它是否存在,就更新它,如果它不存在,就
MYSQL-Innodb下,update的并發(fā)是否會(huì)產(chǎn)生臟數(shù)據(jù)?
在MySQL并發(fā)數(shù)據(jù)更新的情況下,通常不會(huì)添加臟數(shù)據(jù)。但是,有一種情況不排除,即如果程序邏輯是判斷它是否存在,就更新它,如果它不存在,就添加新的數(shù)據(jù)。在這種情況下,如果沒有唯一索引約束,將生成臟數(shù)據(jù)。
事實(shí)上,這種情況類似于并發(fā)事務(wù)的臟讀。
在并發(fā)情況下,如果事務(wù)的隔離級(jí)別太低(未提交讀?。?,則可能會(huì)發(fā)生臟讀取,即一個(gè)事務(wù)讀取另一個(gè)事務(wù)的未提交更新數(shù)據(jù)。也可以在撤銷事務(wù)時(shí)覆蓋另一個(gè)事務(wù)的更新結(jié)果,即丟失更新。