Requête MySQL ne va pas loin, après avoir été tué
J'ai une requête MySQL qui est de la copie de données à partir d'une table à l'autre pour le traitement. Pour quelque raison, cette requête qui prend normalement quelques secondes enfermés pour la nuit et a couru pendant plusieurs heures. Lorsque je me suis connecté ce matin, j'ai essayé de tuer la requête, mais il est toujours répertorié dans la liste des processus.
| Id | User | Host | db | Command | Time | State | Info |
+---------+----------+-----------+------+---------+-------+--------------+--------------------------------------------------------------------------------------+
| 1061763 | tb_admin | localhost | dw | Killed | 45299 | Sending data | INSERT INTO email_data_inno_stage SELECT * FROM email_data_test LIMIT 4480000, 10000 |
| 1062614 | tb_admin | localhost | dw | Killed | 863 | Sending data | INSERT INTO email_data_inno_stage SELECT * FROM email_data_test LIMIT 4480000, 10000 |
Ce qui pourrait avoir causé cela, et comment puis-je tuer ce processus afin que je puisse faire mon travail?
Rebondir mysql serait clair que, si vous voulez aller de l'option nucléaire.
OriginalL'auteur Wige | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
Si la table email_data_test est MyISAM et il a été verrouillé, qui aurait tenu jusqu'à l'INSERTION.
Si la table email_data_test est InnoDB, puis beaucoup de MVCC de données a été écrit dans ib_logfiles, qui n'ont pas encore eu lieu.
Dans les deux cas, vous avez eu la clause LIMIT défiler 4,480,000 lignes, juste pour arriver à 10 000 lignes vous vraiment besoin de l'INSÉRER.
Tuer la requête seules causes de la table InnoDB email_data_inno_stage pour exécuter une restauration.
OriginalL'auteur RolandoMySQLDBA
J'ai trouvé un grand article à ce sujet sur dbasquare.
Pourquoi ne threads restent parfois dans ‘tué’ état dans MySQL?
OriginalL'auteur Sasha