Concurrent UPDATE in the Same Table
Transaction T1:
1 2 3 | START TRANSACTION;
UPDATE test SET address='test1234' WHERE name='test1';
COMMIT;
|
Transaction T2:
1 2 3 | START TRANSACTION;
UPDATE test SET address='test1234' WHERE name='test2';
COMMIT;
|
Transaction T3:
1 2 3 | START TRANSACTION;
UPDATE test SET address='test1234' WHERE name='test1';
COMMIT;
|
Scenario 1:
T1 is started but not committed. At the same time, T2 is started. The UPDATE of T1 and then T2 starts, and both of them succeed. This is because UPDATE operations use row-level locks and do not conflict when they update different rows.
Scenario 2:
T1 is started but not committed. At the same time, T3 is started. The UPDATE of T1 and then T3 starts, and the UPDATE of T1 succeeds. The UPDATE of T3 times out. This is because T1 and T3 update the same row, the lock on which is held by the uncommitted T1.
Last Article: Concurrent INSERT in the Same table
Next Article: Concurrent Data Import and Queries
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.