Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A queda da tabela faz o MySQL travar

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 esta for sua tabela, veja este link

você tem um impasse implícito. Mate as outras transações para liberar o drop, ou mate o drop para liberar as outras transações.

Você pode usar KILL thread_id, em sql_plus.

Estou adicionando mais informações desde que eu vim com outra experiência interessante.

Metadata Dead locks podem ocorrer igualmente entre uma operação ddl em uma determinada tabela (drop , alter ...) e um selecionar consulta nessa tabela.

Sim, select .

Então, se você fizer um loop sobre um cursor no mysql (ou php, por exemplo com pdo::fetch ), e você executa uma instrução ddl na(s) mesma(s) tabela(s), você obterá um deadlock.

Uma solução para este cenário atípico é liberar os bloqueios implícitos com um commit sistematicamente após qualquer instrução select ser completamente buscada.