sql >> Database teknologi >  >> RDS >> Mysql

MySQL:timeout for låsevent er overskredet

Jeg er enig med Erik; TRUNCATE TABLE er vejen at gå. Men hvis du af en eller anden grund ikke kan bruge det (f.eks. hvis du ikke rigtig ønsker at slette hver række i tabellen), kan du prøve følgende muligheder:

  • Slet rækkerne i mindre batches (f.eks. DELETE FROM bundle_inclusions WHERE id MELLEM ? og ?)
  • Hvis det er en MyISAM-tabel (faktisk kan dette også fungere med InnoDB), prøv at udstede en LOCK TABLE før DELETE. Dette skulle garantere, at du har eksklusiv adgang.
  • Hvis det er en InnoDB-tabel, så efter timeout opstår, brug VIS INNODB STATUS. Dette skulle give dig et indblik i, hvorfor låseoptagelsen mislykkedes.
  • Hvis du har SUPER-privilegiet, kan du prøve VIS PROCESSLISTE ALLE for at se, hvilke andre forbindelser (hvis nogen) der bruger tabellen, og derefter bruge KILL for at slippe af med dem, du konkurrerer med.

Jeg er sikker på, at der er mange andre muligheder; Jeg håber, at en af ​​disse hjælper.



  1. Anmodning indstillet i Concurrent Manager

  2. Hvordan bruger man alfanumeriske felter med BETWEEN-sætning i Mysql?

  3. SQL (ORACLE):ORDER BY og LIMIT

  4. MySQL - find forskel mellem rækker i samme tabel