begin process at 2012 02 15 14:12:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Optimiser des requetes SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Optimiser des requetes SQL

jeudi 22 février 2007 à 15:13:08 | Optimiser des requetes SQL

AtomiKiller

Bonjour, j'ai actuellement un site web qui génère énormément de requêtes SQL et je voudrais savoir comment les optimiser sur une page en particulier,

En effet c'est une sorte de 'jeu' et la page est appellée très très souvent et par des centaines d'utilisateurs en simultané, du coup, cette page à elle seule me 'bloque' le serveur.

Il n'y a que trois requetes SQL mais je voudrais savoir s'il était possible de les optimiser ?

PS : Je fais régulièrement un nettoyage et une optimisation de mes tables !

Merci à vous, voici le script :


include "config.php";
$sql = "SELECT pseudo FROM `users` WHERE `points`>'5' AND `choix`='' ORDER BY RAND() LIMIT 0,1";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
$pseudo = $data['pseudo'];
mysql_close();

include "config.php";
$sql = "UPDATE `users` SET `points`=points-5, `stats`=stats+1 WHERE `pseudo`='".$pseudo."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_close();

include "config.php";
$sql = "UPDATE `users` SET `points`=points+5 WHERE pseudo='".$mypseudo."' // ICI $MYPSEUDO CEST UNE DONNEE CONTENU DANS LA SESSION DE LUTILISATEUR";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_close();
jeudi 22 février 2007 à 15:27:13 | Re : Optimiser des requetes SQL

FhX

Oui tu peux, déja tu include() un peu trop souvent à mon gout.

De plus, tu peux voir au niveau des procédures stockés.
Ta table doit être comme suit :

Users (id_user, pseudo_user, ...... );

Donc, c'est avec id_user que tu joues... pas avec son pseudo !

Ta première requète doit donc ressembler à ca :

$sql = 'SELECT id FROM users WHERE points >5 AND IS_NULL(choix)';
// Ce qui implique déja que points est un entier (ce qui ne l'est pas chez toi vu que tu utilises des quotes) et que choix peut être un champ de type NULL.

// Tu fais le query...()... etc...
$id_user = $data[0];


Et après, tu fais tes updates tranquillou en utilisant l'ID.
Une autre astuce peut être utilisé en utilisant les sous-requètes depuis l'UPDATE.

Un truc genre
UPDATE users SET ..... WHERE id = ( SELECT id FROM users WHERE ....) ;


A voir le plus rapide.

vendredi 23 février 2007 à 13:06:01 | Re : Optimiser des requetes SQL

coockiesch

Yop!
  Je vais peut être dire une connerie, mais éventuellement ajouté les pts en index? Ou bien créer une table ne contenant que id, points, stats si ta table originale contient bcp de champs?

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"


Cette discussion est classée dans : points, mysql, sql, pseudo, optimiser


Répondre à ce message

Sujets en rapport avec ce message

Je narive pas a faire marcher mé Header je n'est rien compris [ par timolerigolo ] Bonjour ou Bonsoir,Voila j'ai des formulaire avec des page Verif et j'aimeré faire une redirection avec un Header mé sa ne marche pas...voila un bouh bonjour j'ai un probleme avec un INSERT INTO [ par timolerigolo ] Bonjour,Voila j'ai une page d'inscription avec 2 INSERT INTO et je voudrais alimanté 2 requéte SQL mé le problème cé que sa alimante que une seule req prob verif donné [ par cobrachris ] Bonsoir, désolé de vous déranger encore une fois.J'ai encore un problème, j'ai créer un espace membre, ainsi qu'un formulaire d'inscription (vraiment pb control if else....pour inscription [ par laubro ] Bonjour,je vousdrais en fait lors de l'envoi d'un form d'inscription (pseudo, pass et mail)  faire un control voir si le pseudo n'existe pas déja dans n'actualise pas dans sql ! [ par zut69 ] Bonjour,je suis en train de faire la partie admin de mon site à espace membre. J'ai une page pour changer les infos des membres, mais quand je modifie message interne [ par 01cod10 ] Je suis en train de faire une messagerie interne sur mon site. Lorsque je clique sur le lien titre le message ne s'affiche pas.Pouvez vous me dire ce WHERE et UPDATE [ par shadow1779 ] Bonjour,quelqu'un pourrait t'il m'aider, j'essai de faire des requetes SQL suivantes, mais celles ci ne marchent pas:mysql_query("SELECT * FROM login probleme d'inscription [ par jojo403 ] Bonsoir, voici mon script : // serveur$sql_serveur="localhost";// login$sql_user="root";// pass$sql_passwd="";// bdd$sql_bdd="enjoy";// Et on se conne problème inscription [ par astuces_jeux ] Bonjour,on ma donné ce code pour une inscription : CDD Inscription<meta http-equiv= problème d'authentification avec la fonction md5() [ par greg975 ] bonjour à tous!débutant en php j'ai écrit un code sur l'autehentification des utilisateurs avec la fonction md5() voir si-dessous. le problème c'est q


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales