Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:tempo limite de espera de bloqueio excedido


Eu concordo com Erik; TRUNCATE TABLE é o caminho a percorrer. No entanto, se você não puder usar isso por algum motivo (por exemplo, se você não realmente deseja excluir todas as linhas da tabela), você pode tentar as seguintes opções:
  • Exclua as linhas em lotes menores (por exemplo, DELETE FROM bundle_inclusions WHERE id BETWEEN ? e ?)
  • Se for uma tabela MyISAM (na verdade, isso pode funcionar com InnoDB também), tente emitir uma LOCK TABLE antes do DELETE. Isso deve garantir que você tenha acesso exclusivo.
  • Se for uma tabela InnoDB, então depois o tempo limite ocorrer, use SHOW INNODB STATUS. Isso deve fornecer algumas informações sobre por que a aquisição do bloqueio falhou.
  • Se você tiver o privilégio SUPER, tente SHOW PROCESSLIST ALL para ver quais outras conexões (se houver) estão usando a tabela e, em seguida, use KILL para se livrar daquelas com as quais você está competindo.
  • l>

Tenho certeza de que existem muitas outras possibilidades; Espero que um desses ajude.