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
Als dit jouw tabel is, bekijk dan deze link
je hebt een impliciete patstelling. Dood de andere transacties om de druppel vrij te geven, of stop de druppel om de andere transacties vrij te geven.
U kunt KILL gebruiken thread_id, in sql_plus.
Ik voeg meer informatie toe omdat ik een andere interessante ervaring heb bedacht.
Metadata
Dead locks kunnen evengoed optreden tussen een ddl-bewerking op een bepaalde tafel (drop
, alter
...) en een select vraag op die tafel.
Ja, select
.
Dus als je een cursor in mysql (of php, bijvoorbeeld met pdo::fetch
), en je voert een ddl-statement uit op dezelfde tafel(s), dan krijg je een deadlock.
Een oplossing voor dit atypische scenario is om de impliciete vergrendelingen vrij te geven met een commit
statement systematisch nadat een select statement volledig is opgehaald.