Waiting for table metadata lock
drop table tableA name
SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10
Se questa è la tua tabella, consulta questo link
hai uno stallo implicito. Elimina le altre transazioni per rilasciare il rilascio o elimina il rilascio per rilasciare le altre transazioni.
Puoi usare KILL thread_id, in sql_plus.
Aggiungo ulteriori informazioni poiché mi è venuta in mente un'altra esperienza interessante.
Metadata
I dead lock possono verificarsi ugualmente tra un'operazione ddl su una determinata tabella (drop
, alter
...) e un seleziona interrogazione su quel tavolo.
Sì, select
.
Quindi, se passi sopra un cursore in mysql (o php, ad esempio con pdo::fetch
), ed esegui un'istruzione ddl sulle stesse tabelle, otterrai un deadlock.
Una soluzione a questo scenario atipico è rilasciare i blocchi impliciti con un commit
istruzione sistematicamente dopo che qualsiasi istruzione select è stata completamente recuperata.