Jag håller med Erik; TRUNCATE TABLE är vägen att gå. Men om du inte kan använda det av någon anledning (till exempel om du inte egentligen vill ta bort varje rad i tabellen), kan du prova följande alternativ:
- Ta bort raderna i mindre omgångar (t.ex. DELETE FROM bundle_inclusions WHERE id MELLAN ? och ?)
- Om det är en MyISAM-tabell (faktiskt kan det här fungera med InnoDB också), försök att utfärda en LÅSTtabell före DELETE. Detta bör garantera att du har exklusiv åtkomst.
- Om det är en InnoDB-tabell, sedan efter timeout inträffar, använd VISA INNODB-STATUS. Detta bör ge dig en inblick i varför låsningen misslyckades.
- Om du har SUPER-privilegiet kan du prova VISA PROCESSLISTA ALLA för att se vilka andra anslutningar (om några) som använder tabellen och sedan använda KILL för att bli av med den/de du konkurrerar med.
Jag är säker på att det finns många andra möjligheter; Jag hoppas att någon av dessa hjälper.