[ADVANCED] systeme de cache pour phpbb

WRInaute impliqué
Hello,

Je viens de découvrir ce fabuleux mod pour phpbb.

Son principe est simple, il met en cache les requètes sql les plus courantes (liste des forum et des sujet du forum) ce qui à pour effet de réduire le nombre de requètes sql et donc d'ameliorer grandement la vitesse de chargement des pages.

Il est développé sur phpbbstyles à partir de code utilisé par cyberalien sur phpbbstyle.

lien vers le sujet
télécharcger Cached Generation (SQL Cache) RC 2

Le code est suffisemment serieux pour être utilisé par phpbbstyle.com et s'adjoint parfaitement avec le systeme de cache de templates de cyberalien : xs mod

En gros, ce code va créer un cahce et le maintenir à jour pour une partie des requètes sql, dans mon cas, pour l'index, je passe de 13, voir 15 requètes au premier chargement (après instal du mod) à 6 une fois le premier chargement effectué (et donc la mise en cache).

Pour viewforum, de 15 à 7, aucun changements pour viewtopic (ce mod ne met pas le contenu des post en cache (cela ferait beaucoup de place quand même).

Le resultat est épatant, vraiment plus rapide, on dirait qu'avec ça, phpbb peut s'offrir une deuxieme jeunesse, on pourra plus dire que c'est le forum le plus lent !

Par contre, attention, il y a beaucoup de code à changer, pas que ce soit très difficile, mais il faut être très attentif en le faisant, car il sera difficile de débugguer un code mal appliqué (et plus il y a de changment, plus le risque de bourde augmente ...).

Il faut bien prendre en compte les tabulation dans le code, cela evitera de se gourer de ligne dans auth.php et aussi, il faut effectuer toutes les occurance du même changement dans function_post.php (cette instruction :

Code:
#  
#-----[ FIND ]------------------------------------------  
#  
               WHERE topic_id = $topic_id";  
            if (!($result = $db->sql_query($sql)))  
            {  
#  
#-----[ AFTER, ADD ]------------------------------------------  
#  
                $db->clear_cache('posts_');
)


Pour rendre ce mod compatible avec simple subforum de cyberalien :

Code:
#  
#-----[ OPEN ]------------------------------------------  
#  
viewforum.php  

#  
#-----[ FIND ]------------------------------------------  
#  
       break;  
}  
if ( !($result = $db->sql_query($sql)) )  

#  
#-----[ REPLACE WITH ]------------------------------------------  
#  
       break;  
}  
if ( !($result = $db->sql_query($sql, false, 'posts_')) )

Il affichera, si vous le voulez, le temsp de chargement de page et le nombre de requètes sql dans votre footer.

Et, dernière chose, il est compatible avec cette suite de mod d'url rewriting + titre pour phpbb


++
 
WRInaute discret
Salut merci pour ce post très interessant !

En cherchant un peu sur le site j'ai trouvé aussi cette modification à faire sur index.php :

Code:
#  
#-----[ FIND ]------------------------------------------  
#  
       ORDER BY aa.forum_id, u.user_id";  
     
 
#  
#-----[ REPLACE WITH ]------------------------------------------  
#  
       ORDER BY aa.forum_id, u.user_id";  
   if ( !($result = $db->sql_query($sql, false, true)) )
 
WRInaute discret
Autre petite modification de functions.php


Code:
#  
#-----[ OPEN ]------------------------------------------  
#  
includes/functions.php  
 
#  
#-----[ FIND ]------------------------------------------  
#  
   $row = $db->sql_fetchrow($result);  
 
#  
#-----[ AFTER, ADD ]------------------------------------------  
#  
   $db->sql_freeresult($result);
 
WRInaute impliqué
t'as vu ça sur phpbbstyles.com?
T'es sur que le code n'est pas a jour sur cela et que c'est vraiment utile ?
 
WRInaute impliqué
dcz a dit:
t'as vu ça sur phpbbstyles.com?
T'es sur que le code n'est pas a jour sur cela et que c'est vraiment utile ?

Verification faite, le code que tu as proposé est inclus dans l'install, le mod est a jour donc ...
 
WRInaute occasionnel
Super mod bien qu'on puisse l'améliorer encore.

Petit bug: je sais pas si c'est à cause de mon url rewriting mais la page de recherche est inaccessible. message: "Vous n'avez pas la permission de rechercher quelconque forum sur ce site."

Je suppose que ça coince dans auth.php, d'autres dans le même cas?

PS: a priori un problème dans la fonction auth (auth.php)

EDIT:
dans le fichier auth.php
Code:
# 
#-----[ OPEN ]------------------------------------------ 
#
includes/auth.php

# 
#-----[ FIND ]------------------------------------------ 
#
				$forum_match_sql";
		if ( !($result = $db->sql_query($sql)) )

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
				$forum_match_sql";
		if ( !($result = $db->sql_query($sql, false, true)) )

#
On peut trouver deux cas - faut remplacer les deux?
 
WRInaute impliqué
Cartapus a dit:
Super mod bien qu'on puisse l'améliorer encore.

Petit bug: je sais pas si c'est à cause de mon url rewriting mais la page de recherche est inaccessible. message: "Vous n'avez pas la permission de rechercher quelconque forum sur ce site."

Je suppose que ça coince dans auth.php, d'autres dans le même cas?

PS: a priori un problème dans la fonction auth (auth.php)

J'ai pas ce problème et j'utilise du mod rewrite.
Te serais tu pas fait avoir par les tabulations comme je l'ai indiqué dans le premier post concernant les modif de auth.php ?

++
 
WRInaute impliqué
Cartapus a dit:
Plus de problèmes, c'était les tabulations effectivement désolé pour ça

np, ça m'a fait la même à la premiere install, c'est le principal defaut de ce code, long et un peu equivoque, mais une fois correctement en place il tu.

++
 
Discussions similaires
Haut