Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bảng thả xuống khiến MySQL bị treo

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

Nếu đây là bảng của bạn, hãy xem liên kết này

bạn có một bế tắc ngầm. Hủy bỏ các giao dịch khác để giải phóng sự sụt giảm hoặc hủy bỏ sự sụt giảm để giải phóng các giao dịch khác.

Bạn có thể sử dụng GIẾT thread_id, trong sql_plus.

Tôi đang bổ sung thêm thông tin vì tôi đã có một trải nghiệm thú vị khác.

Metadata Các khóa chết có thể xảy ra như nhau giữa một thao tác ddl trên một bảng nhất định (drop , alter ...) và một lựa chọn truy vấn trên bảng đó.

Có, select .

Vì vậy, nếu bạn lặp lại một con trỏ trong mysql (hoặc php, ví dụ:với pdo::fetch ), và bạn chạy một câu lệnh ddl trên (các) bảng giống nhau, bạn sẽ gặp phải sự cố.

Một giải pháp cho tình huống không điển hình này là giải phóng các khóa ngầm bằng commit câu lệnh một cách có hệ thống sau khi bất kỳ câu lệnh select nào được tìm nạp hoàn toàn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kế thừa lớp với .NET EF4.1 + MySQL

  2. MySQL:Giao dịch trên nhiều chuỗi

  3. MySQL ERROR 1005 (HY000):Không thể tạo bảng 'foo. # Sql-12c_4' (errno:150)

  4. MySQL:Lỗi SQL:1140, SQLState:42000

  5. Cách tạo mối quan hệ trong MySQL