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

Langage PHP Discussion :

Comment gérer des statistiques poussées ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Par défaut Comment gérer des statistiques poussées ?
    Bonjour à tous,

    J'ai pas mal cherché sur le forum et sur le site mais je n'ai pas trouvé de solution à ma problématique. Je dois réaliser une multitude de statistiques pour un site (que je n'ai pas encore commencé a coder).

    Le but est de conserver un historique de 3 ans sur l'ensemble des actions d'un visiteur par session sur le site. Ex, clic sur tel ou tel lien, utilisation de la fonction recherche, nombre de documents consultés etc ... En gros je dois enregistrer le comportement de l'internaute pendant toute sa visite.

    Je me demande comment gérer ces stats ? Surtout si le site est énormément visité.

    Je voulais partir sur l'idée de stocker dans des tables les infos a chaque fois qu'une action (qui m'intéresse pour les stats) est effectuée. Maintenant vu le volume de données j'ai peur que l'exploitation des données soit difficiles (problème mineur) ou que le fait charger le code avec des requêtes pour enregistrer les actions ralentisse considérablement la navigation ...

    Qu'en pensez vous ? Avez vous une idée ? Un retour d'expérience ?

    Merci de vos conseils.

    Nico

  2. #2
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    alors, j'ai deja du faire face a un probleme similaire.

    a l'epoque la meilleure solution que j'ai trouvé est avec les sessions



    en gros d'une part tu stockes les actions que tu veux garder dans des tableaux que tu met en session (toujours en ajout et pas en ecrasement).

    a la premiere page tu set le temps unix dans une variable (toujours en session)
    pour les autres requettes tu compare le temps stocke et le temps actuel,
    si il depasse disont 1 minute, tu fais ta requete dans la base, tu vides la variable et tu reset le temps en session.

    avantage : ca reduit enormement le nombre de requete sql
    inconvenient : tu risques de perdre la derniere minute de donnée (ce qui peut etre embettant sur un site de commerce par exemple :p)



    autre solution c'est au lieu d'utiliser un timer c'est lance les requetes sur certaines requetes (tu stockes les données su toutes les requetes)

    compromis entre requete a chaque coup et timer

    sinon si toutes les données sont importante, tu n'aura pas le choix que de faire des requetes pour chaque action.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Par défaut
    Intéressant !

    Maintenant comme tu le dis, dans le cas numéro je risque de louper la dernière minute d'action (Je ne peux pas prendre ce rique) , dans le cas numéro 2 je risque de passer a coté de certaines requêtes. Mais si la solution 2 est bien pensée ça peut être une solution alternative !

    Merci de ton aide.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2003
    Messages : 88
    Par défaut
    Salut!
    Je me permet une idée: si tu penses intégrer de l'ajax, tu peux balancer la requête en ajax après le chargement de la page: ca ne résoud pas certains trucs mais ca a le mérite de ne pas ralentir la navigation...

    Raf

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Personnelement je fonctionne différament.
    en faite j'ai eu 2 cas , l'un ou je chercher a connaitre mes pages les plus utilisé , et la j'ai simplement incrementer un compteur par Heure , à la fin je faisai des SUM en MySql.

    2eme cas je cherché a connaitre les thermes les plus fréquent des recherches de mes utilisateurs.
    Et la je diviser en 2 temps , mes utilisateurs passe surtout entre 6H et 3H du mat.
    ( oui je sais , ils sont tardif )
    le gros des requêtes lourd de mes utilisateurs est entre 5H et et 8H ( en début de soiré )
    J'ai donc stoquez les requêtes dans une zone temps.
    et vers 5 H du mat ou peut de monde vient me voir j'ai le planifieur de tache qui ouvre FireFox avec une page admin.
    Cette page coupe les requêtes et somme le nombre d'utilisation de chaque mot.
    ensuite elle diminue les thermes non utilisé dans la journée, et ajoute les somme calculer.
    ce qui me permet de connaitre les thermes les plus utilisé pour optimiser mes requêtes.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Par défaut
    Merci de vos réponses.
    Je ne pense pas intégrer d'ajax mais la solution était interessante, pour les autres idées je vais creuser !
    Encore merci !

Discussions similaires

  1. [VB.NET 1.1] Comment afficher des statistiques ?
    Par fumesec dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/08/2008, 10h23
  2. Réponses: 2
    Dernier message: 10/10/2006, 12h38
  3. [5.5.17] Comment gérer des autorisations
    Par elitost dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 12/09/2006, 20h20
  4. Comment gérer des services par programmation avec Delphi ?
    Par isachat666 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 18/12/2005, 18h54
  5. [Firebird] Comment gérer des groupes d'utilisateur
    Par stundman dans le forum Administration
    Réponses: 3
    Dernier message: 16/11/2005, 13h30

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