1
我有一個nodejs Web服務與MariaDB服務器和約500名日常活躍用戶在我的應用程序。MariaDB多個相同的行,即使使用REPEATABLE READ事務時
在我的代碼,我使用事務象下面這樣:
START TRANSACTION
-- select to find out the existence of a row --
-- if the row doesn't exist, a new row inserted --
COMMIT
本次交易應導致沒有插入重複行,但事實並非如此。
我認爲這發生在具有不同會話的2個請求同時到達時發現該行不存在,然後兩個會話都會插入它。
MariaDB事務隔離級別是REPEATABLE-READ。
這是因爲REPEATABLE READ隔離級別?
如何在另一個會話可能讀取同一行時獨佔地鎖定讀取和寫入?