IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Script 'utilitaire' sur serveur ?


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 77
    Points
    77
    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é

  2. #2
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 77
    Points
    77
    Par défaut
    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

  4. #4
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    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.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 77
    Points
    77
    Par défaut
    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

  6. #6
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    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.

  7. #7
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    ... ce qui revient à calculer les stats à chaque consultation de chaque utilisateur.

Discussions similaires

  1. Appel d'un script Perl sur serveur
    Par DarkVadorette dans le forum Langage
    Réponses: 6
    Dernier message: 17/06/2011, 12h28
  2. Réponses: 2
    Dernier message: 02/03/2011, 16h45
  3. Script Python sur serveur web
    Par Freyskeyd dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 04/01/2011, 00h40
  4. Réponses: 13
    Dernier message: 26/07/2010, 08h59
  5. scripts cgi sur serveur apache
    Par jejerome dans le forum Apache
    Réponses: 1
    Dernier message: 26/02/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo