Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2007, 15h16   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 127
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2006
Messages : 127
Points : 46
Points : 46
Par défaut Script 'utilitaire' sur serveur ?

Bonjour à tous !

Ca y est, j'ai pris le temps de me remettre aux technos web (bien besoin ).
Je me suis donc mis dans la tête, à titre de projet de "formation", de faire un site de rencontres (comme c'est original !).

J'ai une première question qui me trotte dans la tête... J'entends partout qu'il faut surtout optimiser les aller/retour avec la base de données...

Alors voici ma question : si, sur le site, j'affiche des statistiques, genre nombre d'inscrits, nombre de filles, nombre de garcons, (voire plus compliqué)... Ca me fait au moins une requete (SELECT sexe FROM table) qui me retourne tous les champs, et qu'ensuite je trie en fonction du sexe... Ou bien plein de requêtes (SELECT id FROM table WHERE sexe='garcon', SELECT id FROM table WHERE sexe='fille', etc etc).

Or ces infos sont les mêmes pour tous les visiteurs du site ! Ce qui veut dire que si j'ai 500 visiteurs (oui j'ai aucune notion du nombre de visiteurs sur un site :p ) en même temps, je multiplie les appels à la base par 500 et à chaque chargement de page. Alors que si j'ai un ptit script qui tourne sur mon serveur, et qui met à jour (mettons toutes les 10min par exemple) quelques variables (genre $nbr_connectes, $nbr_connectes_garcon, $nbr_connecte_fille) qu'éventuellement je mettrais en super globales ($_GLOBALS[] ?)... Ben ça m'économiserait au moins 500 requêtes à chaque chargement de page.

Non ?

Vous en pensez quoi, et déjà (!) est ce que c'est réalisable ?

Pareil, je pensais à une manière de rediriger l'utilisateur sur la page de connexion s'il reste inactif plus de 10min (mais sans utiliser javascript, puisque certains ptits malins peuvent l'avoir désactivé)... Enfin ca ne fait pas partie de ce topic Ma question est vraiment : est ce qu'on peut économiser plein de requetes grace a un script qui s'exécute toutes les X minutes sur le serveur et qui met à jour quelques globales ?

Merci de vos réponses, et désolé pour le pavé
Lideln est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 01h03   #2
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
En effet, je pense que d'éxécuter des scripts de stat est plus performant que de calculé les stats pour chaque utilisateur.

Mais avant d'optimiser, il faudrait mesurer si c'est vraiment nécessaire. Par exemple si ta requête de calcul de stat prend 0,07 secondes pour s'éxécuter : est-ce qu'une optimisation est utile?

Autrement, si tu veux compter le nombre d'inscrits, de garçons, de filles... tu peux simplement incrémenter des compteurs. Ainsi aucun calcul serait nécessaire.
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 02h03   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 127
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2006
Messages : 127
Points : 46
Points : 46
Bonne idée l'histoire des compteurs, c'est vrai. Le seul inconvénient cependant est (là encore) la redondance... Sauf si tu crées une table spéciale rien que pour tes compteurs.

Pour la requête de 0.07s (j'ai pas calculé hein, je reprends ton chiffre ), ok, mais si ça prend 0.07s PAR utilisateur connecté, ça va commencer à faire, sauf si c'est 0.07s pour TOUS les utilisateurs (grâce au script qui tourne en fond par exemple)

Par contre si je fais exécuter sur le serveur un script à heures fixes (toutes les 10 minutes mettons) qui met à jour les variables (déjà comment on fait ça, lancer un script 'utilitaire' ? oO), ces variables seront-elles accessibles par mes scripts "normaux" (ceux appelés lors de la navigation par le client) ?

Merci pour toute aide
Lideln est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 02h31   #4
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
Tu peux lancer une tâche plannifié sur ton serveur.
Si ton serveur est sous linux, tu peux utiliser cron pour plannifier tes tâches. Tu peux même utiliser php pour créer des scripts système. Et biensur rien t'empêche d'utiliser des fichiers/tables commun entre tes scripts système et tes script web.
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 13h38   #5
Membre du Club
 
Inscription : juillet 2006
Messages : 127
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2006
Messages : 127
Points : 46
Points : 46
Ok, je vais donc tâcher de me renseigner sous quel OS tourne mon hébergement... (oui c'est tout récent )

Bonne journée, et merci pour les infos ! Je vais creuser le sujet
Lideln est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 13h59   #6
Rédacteur

 
Inscription : septembre 2002
Messages : 1 591
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : septembre 2002
Messages : 1 591
Points : 3 108
Points : 3 108
Plutôt que d'exécuter des scripts de stats via un cron (ce qui ferait que t'aurais toujours un décalage entre les données réelles et tes stats...), crée une ou plusieurs vue(s) dans ta base de données qui contiennent justement les résultats agrégés et lorsqu'un visiteur se connecte tu ne fais qu'un select ...sur la vue en question.
stephane eyskens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 11h25   #7
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
... ce qui revient à calculer les stats à chaque consultation de chaque utilisateur.
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h19.


 
 
 
 
Partenaires

Hébergement Web