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 :

système de cache pour soulager mySQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut système de cache pour soulager mySQL
    Bonjour à tous,

    J'ai créé un système de cache utilisant le XML et un système de fichiers, il marche très bien mais il doit créer beaucoup de fichiers dans certains répertoires, j'ai entendu dire que cela ralentissait le processus ?

    Est ce qu'il faut alors repartir ces fichiers dans des sous répertoires ou cela ne change rien ?

    Merci d'avance pour votre réponse,
    Cordialement, Adrien.

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Tout dépend de ce que tu considères comme "beaucoup".
    Creer 200 fichiers dans un répertoire ou en creer 20 dans 10 répertoires différents ne change pas grand chose.
    Si par contre, tu commences à taper dans le milliers de fichiers, ca peut valoir le coup de faire un ou deux tests de perf pour voir.

    Pour ce qui est de la vitesse d'execution, je suis un grand partisant d'agir après coup. S'il y a un problème de vitesse (ce qui dans la majorité des cas n'est pas le cas), alors il faut trouver le noeud qui pose problème et agir, le faire avant est souvent une perte de temps pour un gain somme toute souvent incertain (Attention, ca ne veux pas dire qu'on peut coder comme un porc non plus, mais qu'il faut d'abord coder proprement et, après, si cela s'avère nécessaire au vue des tests de perf, trouver un ou deux raccourcis sur les points très précis qui ralentissent le traitement).

  3. #3
    Inscrit
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Points : 273
    Points
    273
    Par défaut
    Toujours sur le chapitre "ne pars pas dans des optimisations stupides", peut-être espères-tu "soulager mysql" en enregistrant directement les données qu'il retourne sur le disque ; si c'est le cas alors tu te trompes : mysql est vraiment bien conçu, et tu dégraderais grandement les performances ce faisant.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    ?? Caerbannog
    Je te rappelle que tout site qui reçoit beaucoup de visiteurs utilisent un système de cache, souvent conçu par d'autres comme memcache, XCache...

    Par exemple facebook utilise memcache si ma mémoire est bonne, surement couplé avec leurs propre système de cache

    J'utilise un système de cache car j'ai conçu un moteur de recherche de vidéos, au début tout allait bien avec une centaine de visiteurs par jour, mais comme ces temps ci cela frôle plutôt les 10.000, le CPU chauffe, l'alternative idéale est le cluster mysql, mais étant donné que j'ai déjà deux serveurs (un pour la recherche et l'analyse d'image, l'autre pour le crawler et le site en lui même) alors je ne peux payer d'autres serveurs.

    Du coup ma solution c'était de faire une sorte de XQuery à moi
    Mais je ne sais pas du tout comment linux (ou n'importe OS) gère les fichiers, si on appelle un fichier dans un repertoire volumineux, est ce qu'il fait une sorte de recherche à un moment ou à un autre, c'était plutôt ca ma question.

    Sinon pour rakken, niveau taille j'ai déjà plusieurs dizaines de milliers de petits fichiers et cela tourne vite, mais je voulais savoir si justement lorsque l'on code une ouverture de fichier dans un répertoire contenant beaucoup de fichiers cela pouvait poser problème...

    Je n'agis donc pas avant coup, mais je voulais obtenir confirmation que mon système était bon pour l'étendre

    Merci pour vos réponses.

  5. #5
    Inscrit
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Points : 273
    Points
    273
    Par défaut
    Désolé je m'assurais juste de ton niveau, le "en enregistrant *directement* les données qu'il retourne sur le disque" excluait un traitement coûteux comme c'est le cas pour toi.
    Et oui rechercher un fichier dans un gros dossier peut ralentir, si bien que par exemple pour les sessions php propose de les enregistrer dans des sous-dossiers qui dépendent du début du nom.
    Exemple : "sess_a9ecabb3510500a68d19061f4a753b4b" sans "sessions/9/a/e/".

  6. #6
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Oui, à ce niveau là, et surtout si c'est en augmentation, songer à séparer en répertoire (au moins faire le test) me semble être une bonne idée. Souvent (si le nom de tes fichiers s'y prête), comme le suggère plus où moins Caerbannog, la (ou les) première lettre du fichier est utilisée pour dispatcher, c'est une méthode très simple et rapide pour trouver le bon répertoire.

Discussions similaires

  1. Système de cache pour serveur proxy
    Par Mouke dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2015, 16h55
  2. [Système] Système de Cache pour PHP4
    Par wikipierre dans le forum Langage
    Réponses: 9
    Dernier message: 14/09/2007, 11h07
  3. Système de cache d'objets avec MySql ou Session ?
    Par vodnok dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2007, 14h04
  4. [COMPOSANT] Système de cache pour asp ?
    Par tom_92 dans le forum ASP
    Réponses: 1
    Dernier message: 12/04/2006, 12h05

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