[résolu] SQL baveuse...

WRInaute accro
Bonsoir,

Ce requête marchait bien avant (avant quoi ?... ) :

SELECT id, pays_fr, nom, constructeur, machine FROM data_champ WHERE EXISTS (SELECT * FROM data_photo WHERE data_champ.id = data_photo.id_site_1) GROUP BY nom

Maintenant, phpmyadmin me dit :

requête SQL:

SHOW TABLE STATUS LIKE 'data_champ';


MySQL a répondu:

#2006 - MySQL server has gone away

Qu'est ce qui se passe ? Pourquoi ça ne marche plus ?

Merci d'avance,

OTP
 
WRInaute accro
Re: Requête SQL baveuse...

Bin le serveur MySQL est parti!

Non sans rire, tu as modifié la table ? (le * dans le SELECT c'est pas extra).
 
WRInaute accro
Re: Requête SQL baveuse...

Et il revient quand le serveur moi j'ai soif ! ;)

Ben tous les champs cités sont encore là, donc je ne comprend que dalle sur ce coup...
 
WRInaute occasionnel
Re: Requête SQL baveuse...

ça n'est pas ta requête qui met trop de temps à s'effectuer et renvoie un timeout?
 
WRInaute accro
Re: Requête SQL baveuse...

Ca doit calculer 2 ou 3 secondes et puis rideau.
Trop ?
 
WRInaute occasionnel
Re: Requête SQL baveuse...

si ce n'est pas le temps, peut être la taille de la requete? Issu du lien précédent: "Vous pouvez aussi obtenir ces erreurs si vous envoyez une requête incorrecte ou trop grande au serveur"
 
WRInaute accro
Re: Requête SQL baveuse...

Merci.
Donc pas une question de temps alors.
Bizarre...
 
WRInaute passionné
Re: Requête SQL baveuse...

Ben comme on dit : "on ne fait jamais d'omelette sans casser d'œufs"

(désolé c'est le titre)

:mrgreen:
 
WRInaute passionné
Re: Requête SQL baveuse...

OTP a dit:
Zut, moi qui croyais trouver une réponse... ;)

Un sourire, parfois ça vaut une réponse :)

edit

Code:
SELECT id, pays_fr, nom, constructeur, machine FROM data_champ WHERE EXISTS (SELECT * FROM data_photo WHERE data_champ.id = data_photo.id_site_1) GROUP BY nom

Pourquoi tu fais un SELECT * dans ta deuxième table ?
 
WRInaute accro
Re: Requête SQL baveuse...

Bon ben fait moi marrer alors parce que là je sèche sur ce truc.
Je pourrais bien contourner en construisant les requêtes d'une autre façon mais j'aime bien comprendre.
 
WRInaute impliqué
Re: Requête SQL baveuse...

olu!

Tu peux regarder si SELECT * FROM data_photo WHERE data_champ.id = data_photo.id_site_1 fonctionne correctement, histoire de cibler le probleme, en l'exécutant en dehors de ta requete complete.

Si c'est faisable, tu peux aussi rajouter un critere très sélectif à ton where histoire de n'avoir que quelques (ou un seul) en enregistrement en résultat... juste pour voir si c'est le temps qui pose probleme

Quand ça merdoie, je fais comme ca de mon coté... faut décomposer :)

VeeTouine
 
WRInaute accro
Re: Requête SQL baveuse...

Le select que tu proposes plante, mais forcément, il fait référence a des éléments non définis.
Pour le test sélectif, j'avais essayé, ça marche.
 
WRInaute accro
Re: Requête SQL baveuse...

OTP a dit:
Et il revient quand le serveur moi j'ai soif ! ;)

Ben tous les champs cités sont encore là, donc je ne comprend que dalle sur ce coup...
Tu as migré ta base à un moment ou un autre ?
 
WRInaute accro
Re: Requête SQL baveuse...

Est-ce que ça pourrait venir de la taille des bases ?

L'une a 10000 lignes, l'autre 9000 ; alors que c'était plutôt 3000 et 2000 quand j'ai codé le truc.
 
WRInaute impliqué
Re: Requête SQL baveuse...

A tout hasard, tu pourrai essayer de récupérer un champ (l'id ?) plutot que tout les champs.

Si ce n'est pas fait, peut-être qu'un index sur le champ id_site_1 aiderai le serveur ?
 
WRInaute accro
Re: Requête SQL baveuse...

Goo quoi ? Moi j'utilise Bing ! ;)

C'est ballot, je pense souvent WRI avant de penser GG.

Donc en gros ça confirmerait mon post du dessus ?
Et comme je suis sur un mutu, va falloir ruser ?
 
WRInaute accro
Re: Requête SQL baveuse...

@seebz : il y a bien les INDEX.
Et j'avais tenté ce que tu proposes, sans succès.
 
WRInaute impliqué
Re: Requête SQL baveuse...

tu peux tester en local avec les meme parametres que ton mutu pour etre sur que ca vient de là.

Apres, en mutu, on peut avoir son propre php.ini, il en est peut etre de meme avec la config mysql

Il s'agit de ton site joomla?
 
WRInaute accro
Re: Requête SQL baveuse...

Non, c'est -http://www.thewindpower.net/v5/pictures_wind_farms.php

Comme je ne travaille pas en local et que je n'ai pas envie de bidouiller le truc, je vais laisser passer une nuit, et coder différemment demain matin. Tant pis pour la rigueur intellectuelle, mais faut bien s'en sortir.

Merci à tous.
 
WRInaute discret
Re: Requête SQL baveuse...

bonjour tout le monde,

je crois que le problème est bcp plus simple que ca et ca se résume en une seule chose : GROUP BY

dans ton select il n'y aucun opérateur (ni somme, ni avg ni rien du tout) alors pourquoi ajouter un group by?!

si tu essaye cette requete, ca devrait deja aller mieux :
Code:
SELECT id, pays_fr, nom, constructeur, machine FROM data_champ WHERE EXISTS (SELECT * FROM data_photo WHERE data_champ.id = data_photo.id_site_1)
personnellement je l'aurai ecrit autrement :
Code:
SELECT id, pays_fr, nom, constructeur, machine FROM data_champ WHERE id in (SELECT id_site_1 FROM data_photo)
 
WRInaute occasionnel
Re: Requête SQL baveuse...

Une requête qui tournait et ne tourne plus ça vient bien d'une requête trop lourde / longue. Tu peux essayer de modifier ta requête pour limiter le nombre de résultats et vérifier que cela vient bien de là.

Sinon je me demande si tu ne peux pas simplement modifier ta requête pour celle-ci :
Code:
SELECT data_champ.id, data_champ.pays_fr, data_champ.nom, constructeur, data_champ.machine FROM data_champ INNER JOIN data_photo ON data_champ.id=data_photo.id_site_1 WHERE 1 GROUP BY data_champ.id
 
WRInaute accro
Re: Requête SQL baveuse...

Oops, merci pour l'aide, mais j'ai contourné en codant d'une autre façon.
Je ne peux même plus tester ta proposition.

Merci.

(Vais ajouter dans le titre)
 
WRInaute accro
ce message d'erreur tu l'avais tout le temps ou juste de façon occasionnelle ? dans ce cas, cela peut venir du fait que le serveur mysql mutu est surchargé momentanément par les autres sites hébergés
 
Discussions similaires
Haut