De UPDATE
loopt in transactie - het is een atomic
bewerking, wat betekent dat als een van de rijen faalt (bijvoorbeeld vanwege een unieke beperking), deze geen van de 5000 rijen zal bijwerken. Dit is een van de ACID-eigenschappen van een transactiedatabase.
Hierdoor is de UPDATE
houd een slot op alle rijen voor de hele transactie. Anders kan een andere transactie de waarde van een rij verder bijwerken, gebaseerd op de huidige waarde (laten we zeggen update records set value =value * '2'). Deze verklaring zou een ander resultaat moeten opleveren, afhankelijk van of de eerste transactie wordt vastgelegd of teruggedraaid. Daarom moet het wachten tot de eerste transactie alle 5000 updates heeft voltooid.
Als u de vergrendelingen wilt ontgrendelen, voert u de update gewoon in (kleinere) batches uit.
PS autocommit
controleert of elke verklaring in een eigen transactie wordt uitgegeven, maar heeft geen invloed op de uitvoering van een enkele vraag