Comment puis-je exécuter des requêtes SQL qui prennent plus de temps à 99 999 secondes sur MySQL Workbench?
Mise à JOUR: le problème est maintenant fixe.
Je voudrais exécuter une requête qui prend plus de 99 999 secondes à exécuter (par exemple,SELECT SLEEP(150000);
). Pour modifier le délai d'attente dans MySQL Workbench, nous devons aller à Édition → Préférences → Éditeur SQL → connexion aux SGBD lire le temps (en secondes). Cependant, la DBMS connection read time out
champ acceptons un maximum de 5 chiffres, et définissant le champ à 0 est équivalente à la valeur par défaut du paramètre (600 secondes). Si la requête prend plus de temps que le délai d'attente, je reçois le message d'erreur: Error Code: 2013. Lost connection to MySQL server during query
D'où ma question: est-il possible d'augmenter cette limite à plus de 99 999 secondes?
J'utilise Windows 7 Ultimate 64 bits avec MySQL Workbench 5.2.47 CE.
La DBMS connection read time out
champ:
Problème de Timeout (0 est équivalente à la valeur par défaut du paramètre (600 secondes)):
Vous ne devriez vraiment pas exécuter des requêtes dans la production que prendre plus de quelques minutes. Si il y a beaucoup de données, exécutez-le en petits lots.
Merci! J'ai besoin d'extraire des informations à partir d'une table de 50 GO et les mettre dans une nouvelle table. Au cours de cette extraction, je fais un peu de mémoire se joint à remplacer certains des attributs de texte correspondant à l'ID (clés étrangères). Je ne comprends pas encore pourquoi cette requête prend plus de 99 999 secondes, mais alors que j'enquêter sur l'exécution de certains
EXPLAIN
j'étais curieux de savoir si il y a moyen de contourner ce 99,999-deuxième limite dans MySQL Workbench. Généralement de réglage pour le paramètre 0 signifie l'infini: est-il un problème technique expliquant pourquoi MySQL Workbench ne permet pas que?Je pense que je peux voir comment optimiser votre
SELECT SLEEP(150000)
déclaration.@chiastique-sécurité 🙂
OriginalL'auteur Franck Dernoncourt | 2013-06-01
Vous devez vous connecter pour publier un commentaire.
Probablement personne n'a jamais pensé que vous auriez besoin d'un tel délai d'attente, donc vous êtes limité à ce qui est réglable à l'heure actuelle. Mais ouvrir une demande de fonctionnalité sur http://bugs.mysql.com de suggérer qu'0 désactiver le délai d'attente entièrement ou permettre à de plus grandes valeurs.
Le bug est maintenant corrigé.
OriginalL'auteur Mike Lischke
Bien, en Europe, nous considérons la virgule décimale-séparateur. Avez-vous vraiment dire les 100k de secondes? Je vois dans vos commentaires que vous êtes la manipulation de 50 GO. De même, si vous avez besoin de plus d'une heure, vous avez raté les Indices. Vous devez savoir que ils l'habitude de faire correctement rebuildt dans une seule requête, donc si vous participez à un massif d'insertion, Vous obtenez le produit cartésien de lignes analysées - en d'autres termes, votre requête pourrait arriver à fonctionner pendant des semaines ou même des mois.
Solution:
1) Remplir de base de données, ne pas se joint ici. 2) l'instruction Alter table pour définir l'indice. 3) Exécutez "ANALYSER" 4) Faire tout le reste.
Si vous sentez que vous avez de la difficulté à l'issue de cette procédure, ajouter votre Requête avec l'EXPLIQUER de mots clés et de publier les résultats.
(J'ai une tâche cron de l'importation d'environ 80 GO toutes les 30 minutes au lieu - MySQL ne peut certainement gérer cela.)
OriginalL'auteur Zsolt Szilagy
Ce problème est résolu dans MySQL Workbench 6.0.3 (2013-07-09): Voir la rapport de bug et la journal des modifications.
OriginalL'auteur Franck Dernoncourt