À partir d'un script, j'ai envoyé une requête comme celle-ci des milliers de fois à ma base de données locale:
update some_table set some_column = some_value
J'ai oublié d'ajouter la partie where, donc la même colonne a été définie sur la même valeur pour toutes les lignes de la table et cela a été fait des milliers de fois et la colonne a été indexée, donc l'index correspondant a probablement été mis à jour trop de fois .
J'ai remarqué que quelque chose n'allait pas, car cela prenait trop de temps, alors j'ai tué le script. J'ai même redémarré mon ordinateur depuis lors, mais quelque chose est resté coincé dans le tableau, car les requêtes simples prennent beaucoup de temps à s'exécuter et lorsque j'essaie de supprimer l'index pertinent, cela échoue avec ce message:
Lock wait timeout exceeded; try restarting transaction
C'est une table innodb, donc la transaction bloquée est probablement implicite. Comment puis-je corriger cette table et en supprimer la transaction bloquée?
SHOW FULL PROCESSLIST
?