https://dev.mysql.com /doc/refman/5.7/en/innodb-autocommit-commit-rollback.html dice:
Quindi, quando imposti autocommit=0 in una sessione (chiamala sessione 1), questo implicitamente si apre una transazione e la lascia aperta a tempo indeterminato.
Il livello di isolamento della transazione predefinito è REPEATABLE-READ. Quindi la tua sessione non vedrà una vista aggiornata delle modifiche salvate dal lavoro di altre sessioni fino a quando la sessione 1 non eseguirà il commit o il rollback in modo esplicito.
Il tuo LOCK TABLES in un'altra sessione 2 fa causare un commit implicito, ma la sessione 1 non vede il risultato perché è ancora in grado di vedere solo una vista isolata dei dati a causa del proprio snapshot di transazione.