U moet een index toevoegen aan de id
kolom om ervoor te zorgen dat u een vergrendeling op rijniveau krijgt. SELECT ... FOR UPDATE
vergrendelt alle rijen die zijn gelezen om de query uit te voeren, niet alleen de rijen die daadwerkelijk zijn geselecteerd. Zonder index moet het een volledige tabelscan uitvoeren, dus elke rij is als resultaat vergrendeld.
Met een index plaatst het gewoon een slot in dat indexitem, het hoeft geen andere rijen te lezen, dus andere rijen worden niet vergrendeld.