I InnoDB, update
udsagn låser hver række, de scanner. Dette betyder, at for at opdatere dine 200 rækker, skal den oprette 350.000 række-niveaulåse, mens den bibeholder en rollback-lås på samme tid og giver den tidligere værdi til alle transaktioner, der læser den allerede ændrede værdi (da transaktionen ikke er forpligtet, og ændringen er ikke endelig)
MyISAM på den anden side låser hele bordet.
Så hvis du har brug for at opdatere alle rækkerne, skal du låse hele tabellen, og du vil få en langt bedre ydeevne (du behøver ikke låse på rækkeniveau)
Men endnu bedre, angiv en WHERE-klausul, som du gjorde, og InnoDB vil kun erhverve låse for de matchende rækker (samt nogle gap-locks i indekstræet, men dette er uden for spørgsmålets omfang)