Système de cache directement dans la base de données Mysql

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par finstreet, 15 Mars 2010.

  1. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 473
    J'aime reçus:
    1
    Bonjour

    Dans l'optique de poursuivre l'allègement de ma charge serveur -j'y arrive d'ailleurs plutôt bien en ce moment-, j'envisage la possibilité de créer des pages en cache. Mais ces pages ne seraient pas générées et laissées sur le serveur mais enregistrées dans la base de données, dans une table. A chaque page est associée une url, et à chaque url un contenu.

    Au premier chargement d'une url dans la journée, le code est généré et intégré dans une table. Comme ca, le prochain chargement ne nécessitera qu'une seule requête affichant la totalité de la page. La table sera vidée tous les soirées (ouais j'ai envie lol) et ne devrait pas dépasser les 100.000 lignes à la fin de la journée.

    Ma question qui en est une, sans en être une : est ce que ça peut avoir un quelconque intérêt ? Enfin le truc plutôt : quels sont les limites d'un tel système ? Je cherche plutôt à me dire que l'idée est mauvaise, car ça va me prendre pas mal de temps à développer lol

    Marchi :)
     
  2. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    un cache fichier a l'avantage de pouvoir marcher même si la base ne marche pas.
     
  3. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 740
    J'aime reçus:
    1
    ouep, tu te ferais moins chier à générer un fichier et à le regénérer si ça date d'expiration de cache est dépassée...
     
  4. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Ca peut être pas mal si tes pages sont longues à être compilés, vont chercher du contenu ailleurs (parseur RSS par exemple).

    Sinon, je ne vois pas trop d'intêret.

    En technique de cache pas mal, tu as memcache (je suis fan perso), tu peux stocker tout ce que tu veux dedans et vu que c'est directement sur la RAM, tu n'as pas d'accès disque pour cette partie (très rapide donc).

    Sinon, regarde aussi pour ton moteur de cache SQL, le mode MEMORY est pas mal mais lock comme du MyISAM.
     
  5. biddybulle
    biddybulle WRInaute passionné
    Inscrit:
    30 Mai 2005
    Messages:
    1 439
    J'aime reçus:
    0
    J'ai du mal également à voir l'interêt, un accès http à une page/fichier .html (Pas d'accès BDD, pas de php ou autre) est plus rapide.
     
  6. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    Une petite recette très efficace pour faire un cache de données :wink:

    Tu crées une classe structurée de la sorte :

    Code:
    1 - Vérification de l'existence  du fichier de données
    2 - si il existe pas, tu fais tes requêtes à la BDD
    	A - tu stockes les données dont tu as besoin pour générer ta page dans un tableau qui sera accéssible grâce aux fonctions de ta classe
    	B - tu sérialise le tableau et tu stocke le résultat dans un fichier
    3 - si le ficheir existe
    	A - tu le lis pour récuperer son contenu
    	B - tu desérialise les données dans un tableau accessible grâce aux fonctions de ta classe
    
    Cette méthode présente l'avantage de ne garder en cache que ce qui est nécessaire (les données et non le HTML) donc un gain de place et puis cela permet de conserver l'indépendance entre le contenu et la présentation du contenu. Il est également possible de fractionner le cache, par exemple sur une page ou tu présente une fiche produit et la liste des derniers produits ajoutés tu stocke les deux dans des fichiers différents pour que la mise à jour de l'un ne nécessité pas de régénérer l'autre.
     
  7. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 593
    J'aime reçus:
    0
    +1 pour memcached.

    Jacques.
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 832
    J'aime reçus:
    246
  9. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    Ca a l'air pas mal, mais ça ne peut s'installer que sur un dédié ?
     
  10. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 064
    J'aime reçus:
    0
    en effet comme le dit bidibulle l'acces a une page html est naturellement rapide.

    j'opterai donc :
    ------------------
    soit pour une mise en cache classique des pages,
    soit par l'execution d'un cron qui te genererai toutes tes pages html d'un coup (style lancé le matin à 5h00) et effacer le cache la nuit ...

    niveau dev 1/2 journée devrait suffire ;) pour des performances plus que correctes ...
     
  11. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 832
    J'aime reçus:
    246
  12. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 473
    J'aime reçus:
    1
    Ah ben c'est pointu :) Bon vais creuser un peu tout ca :) Pas mal de notions à assimiler encore... mais cool j'ai plein de raisons de ne pas choisir cette solution :)

    Marchi pour tout
     
  13. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Il y a pas mal d'intérêt à utiliser du cache dans une base de données plutôt que sur le disque.
    Si tu utilises plusieurs dédiés et une base MySQL, plutôt que de dispatcher tes fichiers de cache ou de les générer sur chaque serveur, tu les balances partout (mais bon, dans ce cas memcache est plus rentable).

    Tout plein de solution s'offre à toi en tout cas mais le cache SQL est une bonne solution aussi (les accès DD ne sont pas toujours plus rapide que mysql avec du query cache suffisament performant surtout sur des serveurs de type "DD mutualisé" à la cloud/RPS).
     
  14. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 064
    J'aime reçus:
    0
    maaa finstreet il dit pas s'il a plusieurs serveurs (mysql, front, mail) ...
    si tu pars dans l'optique d'un seul serveur pour tout un systeme de cache classique fonctionne tres bien...
    y fait combien de VU le mosieur ?
     
  15. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 473
    J'aime reçus:
    1
    y'a déjà un QUERY Cache en fait. Ca permet de bien réduire le temps mais je n'ai jamais su quand le cache se vidait. Je pense m'orienter vers une solution intermédiaire, à savoir sélectionner des pages qui n'évolueront plus ou pas avec le temps (sauf action de ma part) et créer à la volée des pages html. Car y'a des pages qui évoluent 30 fois par jour, et là ca ne sert à rien de mettre en cache.

    En tout cas, suis passé avec pas mal de boulot à une charge serveur constante aux alentours des 50-60% contre des minimums à 200% avant :)
     
  16. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    tout dépend du nombre de visites sur ces pages et du temps de création de chaque contenu
     
  17. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 473
    J'aime reçus:
    1
    Bah pour faire simple, c'est un rapport de 1 à 10. Les pages mis à jour 30 fois par jour sont vues 300... les pages mises à jour... jamais ou presque sont vues 3.000 fois :) En y réfléchissant il est assez statique mon site :)
     
  18. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    en fait, ce que je fais sur certains de mes sites : lors de chaque modification je supprime automatiquement la page en cache. Et ensuite, si la page en cache existe et est du jour même, on l'utilise, sinon on la (re)crée
     
  19. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 473
    J'aime reçus:
    1
    bon vais tester ca sur une page :) Je reviendrais vers vous quand ca plantera mdr
     
  20. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 064
    J'aime reçus:
    0
    pas pour un CHMOD ou une erreur de chemin hein? sinon on te tapera sur les doigts :mrgreen:
     
Chargement...
Similar Threads - Système cache directement Forum Date
Que pensez-vous de ce systeme de cache? Développement d'un site Web ou d'une appli mobile 23 Janvier 2019
systeme de redirection qui cache le nom des pages php URL Rewriting et .htaccess 4 Juin 2012
Panorama des systèmes de cache : PHP, MySQL, HTTP Administration d'un site Web 16 Août 2010
Que pensez-vous du système de monétisation wordpress premium ? Monétisation d'un site web 2 Novembre 2019
système de notation par étoiles : dimensions mini ? Administration d'un site Web 9 Octobre 2019
Système de tirage de carte aléatoire Développement d'un site Web ou d'une appli mobile 27 Août 2019
Intégration système point relais sur site ecommerce e-commerce 25 Mars 2019
Avoir son propre système de redirections sur un sous domaine Netlinking, backlinks, liens et redirections 27 Septembre 2018
Système de paiement Stripe e-commerce 19 Août 2018
Quels systèmes de paiement certifiés ? e-commerce 1 Mars 2018
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice