W InnoDB, update
wyciągi blokują każdy skanowany wiersz. Oznacza to, że aby zaktualizować 200 wierszy, musi utworzyć 350 000 blokad na poziomie wiersza, zachowując jednocześnie blokadę wycofania i podając poprzednią wartość wszelkim transakcjom, które odczytują już zmienioną wartość (ponieważ transakcja nie jest popełnione, a zmiana nie jest ostateczna)
MyISAM z drugiej strony blokuje cały stół.
Więc jeśli chcesz zaktualizować wszystkie wiersze, zablokuj całą tabelę, a uzyskasz znacznie lepszą wydajność (nie będziesz potrzebować blokad na poziomie wiersza)
Ale jeszcze lepiej, podaj klauzulę WHERE, tak jak to zrobiłeś, a InnoDB uzyska blokady tylko dla pasujących wierszy (jak również niektórych luk w drzewie indeksów, ale to nie wchodzi w zakres pytania)