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.