我有一些使用PHP和MySQL的經驗,我知道約交易但使用它們的經驗相當少。MySQL的交易時機
我正在開發一個Web應用程序,用戶將在這個Web應用程序中對單個數據庫進行各種CRUD操作。 (是的,它是InnoDB)。我很好奇,交易將如何表現,我給你一個相當簡單的例子:
1)用戶1開始事務在我的數據庫更新的John Smith
名稱Johnathon Smith
。
2)用戶2開始一個事務右後用戶1的事務已經開始閱讀的John Smith
的名字,但在提交之前。
用戶2將看到的結果是什麼? John
或Johnathon
?
在用戶1的交易過程中,John Smith
的記錄被鎖定,還是可以在交易過程中讀取?
此外,這兩項交易的時間安排如何?用戶2的交易是否在某個隊列中等待,直到用戶1的交易完成? MySQL DB如何對多個事務嘗試訪問同一個表/記錄進行分類?
另外,假設用戶1的事務平均需要500毫秒才能完成,而用戶2的事務操作平均需要750毫秒才能完成。用戶2的響應時間有多長? 1250毫秒?
任何鏈接到相關文章或其他SO問題,非常感謝!
哇,謝謝你的詳細,非常易懂的響應!現在你提到它了,我記得有關MVCC的知識,*讀者不會阻止作者,反之亦然*規則......感謝鏈接,我不知道爲什麼我沒有想到多個shell窗戶,這將使我很容易找出自己的!請原諒我沒有正確拼寫'Jonathan'!哈哈 –
我的榮幸,很高興幫助。我只是在逗你玩喬納森問題。感謝你們奉上的精神。 :-) –