Optimiser requête Mysql
7 messages
• Page 1 sur 1
- extremenet
- WRInaute discret

- Messages: 166
- Inscription: 2 Oct 2006
Optimiser requête Mysql
Bonjour,
j'essaie d'optimiser une une requête mysql mais sans succès :
le but est de mettre deux requêtes en une pour améliorer la vitesse d'affichage et réduire par 2voi 3 le nombre de requête mysql sur mon site :
requête :
le but de cette requête est d'afficher un article et d'afficher le nombre de vote. Je sais qu'il y a une requête pour réduire celle-ci au minimum mais je ne trouve pas la solution.
et si vous avez d'autre astuce.
merci de votre aide
j'essaie d'optimiser une une requête mysql mais sans succès :
le but est de mettre deux requêtes en une pour améliorer la vitesse d'affichage et réduire par 2voi 3 le nombre de requête mysql sur mon site :
requête :
- Code: Tout sélectionner
$info_article = mysql_query("SELECT titre, categorie, auteur, pour, description, statut FROM articles where idarticle = '$_GET[article]' ");
if(mysql_num_rows($info_article) > 0)
{
while($row = mysql_fetch_array($info_article)){
$titre = stripslashes($row['titre']);
$categorie = stripslashes($row['categorie']);
$auteur = stripslashes($row['auteur']);
$description = stripslashes($row['description']);
$statut = stripslashes($row['statut']);
$idarticle = $_GET['article'];
}
$nombrevotearticle = mysql_query("SELECT * FROM votearticle where idarticle='$idarticle' and statut ='1'");
$nombre_vote_total = (mysql_num_rows($nombrevotearticle));
}
le but de cette requête est d'afficher un article et d'afficher le nombre de vote. Je sais qu'il y a une requête pour réduire celle-ci au minimum mais je ne trouve pas la solution.
et si vous avez d'autre astuce.
merci de votre aide
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: Optimiser requête Mysql
Salut, sans garantie essaye ça :
(oublies pas de remplacer [UNIQUE_ID] par le nom du champ primaire de la table "votearticle")
Ici une requête du même genre qui fonctionne bien sur un de nos site (pour inspiration) :
- Code: Tout sélectionner
SELECT a.titre, a.categorie, a.auteur, a.pour, a.description, a.statut, COUNT( va.[UNIQUE_ID] ) AS nombre_vote_total
FROM articles a
LEFT OUTER JOIN votearticle va
ON ( va.idarticle = a.idarticle AND va.statut = '1' )
WHERE a.idarticle = '$_GET[article]'
GROUP BY a.idarticle
(oublies pas de remplacer [UNIQUE_ID] par le nom du champ primaire de la table "votearticle")
Ici une requête du même genre qui fonctionne bien sur un de nos site (pour inspiration) :
- Code: Tout sélectionner
SELECT Fiche.*, COUNT(Vote.id) AS nb_note, IFNULL(AVG(Vote.note),3) AS avg_note
FROM fiches Fiche
LEFT OUTER JOIN votes Vote
ON (Vote.fiche_id=Fiche.id AND Vote.online)
WHERE Fiche.id IN ('23','32','40','45','56','81','120') AND ( Fiche.online )
GROUP BY Fiche.id
ORDER BY avg_note DESC, nb_note DESC, nb_visites DESC, Fiche.name ASC
-

Aaarrrgggh - WRInaute occasionnel

- Messages: 394
- Inscription: 16 Mar 2009
Re: Optimiser requête Mysql
ne pas oublier de mettre des index sur les champs où s'effectuent les conditions, ce qui permettra d'augmenter la vitesse d'exécution de la requête.
- extremenet
- WRInaute discret

- Messages: 166
- Inscription: 2 Oct 2006
Re: Optimiser requête Mysql
ok merci, je vais tester ceci
par contre ensuite je ressort mes variable par un while comme je fais ? et la valeur de count ?
par contre ensuite je ressort mes variable par un while comme je fais ? et la valeur de count ?
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: Optimiser requête Mysql
Si t'as vu extremenet je t'ai proposé une solution
Elle t'évite une requête lourde et fréquente avec jointure et donc divise réellement la charge serveur. Après tu fais ce que tu veux ^^
A terme tu auras le même problème que kwiky mais bon, continue de m'ignorer ^^
A terme tu auras le même problème que kwiky mais bon, continue de m'ignorer ^^
- extremenet
- WRInaute discret

- Messages: 166
- Inscription: 2 Oct 2006
Re: Optimiser requête Mysql
je ne t'ignore pas du tout, j'utilise celle-ci, mais la c'est pour faire une comparaison car j'ai parfois des différences au niveau du chiffre réelle. rajouter un champ et sur et certaines la meilleur solution.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Optimiser une requete MySQL
- Comment optimiser une requete mysql/sql?
- Aide pour optimiser l'écriture d'une requete PHP/MYSQL
- [mysql] trier les résultats d'une requête selon une table non liée à la requête
- Optimiser requete sql
- Optimiser une requete SQL
- Optimiser une double requete
- Optimiser mysql
- Comment optimiser au mieux mon site sur une requête
- Cherche a optimiser une requette MySQL SVP
- Google API : guide de développement de l'API Google
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB 3
- Les différents systèmes de mise en cache des données
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006
- Script de mise en cache des pages (PHP MySQL)
- GoogleStats : analyse temps réel des visites de Google sur votre site
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
