sql >> Databáze >  >> RDS >> Mysql

MySQL:Překročena doba čekání na zámek

souhlasím s Erikem; TRUNCATE TABLE je způsob, jak jít. Pokud to však z nějakého důvodu nemůžete použít (například pokud skutečně chcete odstranit každý řádek v tabulce), můžete zkusit následující možnosti:

  • Smažte řádky v menších dávkách (např. DELETE FROM bundle_inclusions WHERE id BETWEEN ? a ?)
  • Pokud se jedná o tabulku MyISAM (ve skutečnosti to může fungovat i s InnoDB), zkuste před DELETE vydat LOCK TABLE. To by mělo zaručit, že máte výhradní přístup.
  • Pokud se jedná o tabulku InnoDB, pak po dojde k vypršení časového limitu, použijte SHOW INNODB STATUS. To by vám mělo poskytnout určitý přehled o tom, proč se akvizice zámku nezdařila.
  • Pokud máte SUPER privilegium, můžete zkusit ZOBRAZIT SEZNAM PROCESŮ VŠE, abyste viděli, jaká další připojení (pokud nějaká) používají tabulku, a pak použít KILL, abyste se zbavili těch, se kterými soutěžíte.
  • li>

Jsem si jistý, že existuje mnoho dalších možností; Doufám, že jeden z těchto pomůže.



  1. Typo3 V6:Jak vytvořit kontejner prvku obsahu? (bez TV)

  2. Nahrazení \r\n PHP

  3. Nainstalujte Mtop (Monitorování databázového serveru MySQL) v RHEL/CentOS 6/5/4, Fedora 17-12

  4. Jak vytvořit více LEFT JOINů s NEBO plně používat složený index? (část 2)