UPDATE
работи в транзакция - това е atomic
операция, което означава, че ако един от редовете не успее (например поради уникално ограничение), той няма да актуализира нито един от 5000-те реда. Това е едно от свойствата на ACID на транзакционна база данни.
Поради това UPDATE
задръжте заключване на всички редове за цялата транзакция. В противен случай друга транзакция може допълнително да актуализира стойността на ред въз основа на текущата му стойност (да речем, че актуализираните записи на стойността =стойност * '2'). Това изявление трябва да доведе до различен резултат в зависимост от това дали първата транзакция се ангажира или отменя. Поради това трябва да изчака първата транзакция, за да завърши всички 5000 актуализации.
Ако искате да освободите ключалките, просто направете актуализацията на (по-малки) партиди.
P.S. autocommit
контролира дали всяко изявление е издадено в собствена транзакция, но не оказва влияние върху изпълнението на една заявка