Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:przekroczono limit czasu oczekiwania na blokadę

Zgadzam się z Erikiem; TRUNCATE TABLE to droga. Jeśli jednak z jakiegoś powodu nie możesz tego użyć (na przykład, jeśli nie naprawdę chcesz usunąć każdy wiersz w tabeli), możesz wypróbować następujące opcje:

  • Usuń wiersze w mniejszych partiach (np. DELETE FROM bundle_inclusions WHERE id BETWEEN ? and ?)
  • Jeśli jest to tabela MyISAM (właściwie może to działać również z InnoDB), spróbuj wydać LOCK TABLE przed DELETE. Powinno to zagwarantować, że masz wyłączny dostęp.
  • Jeśli jest to tabela InnoDB, to po po przekroczeniu limitu czasu użyj polecenia POKAŻ STAN INNODB. To powinno dać ci pewien wgląd w to, dlaczego akwizycja zamka nie powiodła się.
  • Jeśli masz przywilej SUPER, możesz spróbować POKAŻ LISTĘ PROCESÓW WSZYSTKICH, aby zobaczyć, jakie inne połączenia (jeśli w ogóle) używają tabeli, a następnie użyj KILL, aby pozbyć się tych, z którymi konkurujesz.

Jestem pewien, że istnieje wiele innych możliwości; Mam nadzieję, że jedno z tych pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 1052:Kolumna „id” na liście pól jest niejednoznaczna

  2. Nie można wygenerować różnicy z wtyczki liquibase gradle

  3. Django views.py Wersja SQL Join z Multi Table Query

  4. Czy mogę rozwiązać ten problem za pomocą czystego mysql? (łączenie na „” rozdzielonych wartościach w kolumnie)

  5. Dodanie dodatkowej wartości kolumny za pomocą INSERT ... SELECT w MySQL