Le topic 5423 a partiellement dévié sur la question du cache utilisateur stocké dans la table #user_cache.
Je reprends les explications faites dans le topic précédemment cité :
z0rglub a écrit:
VDigital a écrit:
A quel moment ce tableau doit il être reconstruit ?...
Pour moi, ce tableau ne doit pas exister du tout... Imaginez que vimages débarque avec disons 1700 membres inscrits.
Le serveur où se trouve PWG passe son temps à faire quoi?La table #user_cache, c'est l'avancée majeure en terme de performances. Elle est arrivée en 1.4. Toute l'astuce, c'est que les données en cache ne sont jamais toutes recalculées en même temps. Le cache d'un utilisateur n'est recalculé que lorsque l'utilisateur visite une page et que son cache est obsolete. Les caches sont donc reconstruits un par un, ce qui est négligeable en terme de charge pour le serveur.
Je trouve que la solution trouvée est particulièrement bien (j'en suis fier on va dire). Je te remercie d'avoir posée la question, cela m'a donné l'occasion de l'expliquer :-)
VDigital a écrit:
Je comprends bien et je me doutais de ta première réponse (on a l'habitude de se les faire comme au billard: bande-bande-bande et toc).
1700 visiteurs x 40000 photos = 68 000 000 d'entrées dans le cache.
Non, je n'ai rien dit ce ne sont pas des infos sur les photos que tu veux mettre dans le cache mais celles de catégories.
volcom a écrit:
excusez moi, je rouvre une parenthèse, je ne me suis jamais intéressé à cet aspect, mais que met on en cache dans cette fameuses table ? user_id, need_update, forbidden_categories , mais ça ne m'aide pas ..
Je poursuis en répondant à volcom...
- user_id : identifiant de l'utilisateur, utile pour la jointure avec la table #users
- need_update : true/false, la ligne nécessite-t-elle un recalcul
- forbidden_categories : liste des identifants (numériques) des catégories privées inaccessible à l'utilisateur
Dans le futur, et au moins pour la branche 1.6, je compte rajouter :
- nb_total_pictures : nombre total de photos que l'utilisateur peut voir (demande 262)
Aidez-moi à trouver d'autres données qui auraient leur place dans cette table.
Hors ligne
- nb_total_pictures : nombre total de photos que l'utilisateur peut voir (demande 262)
Je vois pas trop l'interet ?
Sinon pourquoi ne pas stocker la date de leur derniere visite au lieu de la mettre dans la table user (il me semble).
Hors ligne
flipflip a écrit:
- nb_total_pictures : nombre total de photos que l'utilisateur peut voir (demande 262)
Je vois pas trop l'interet ?
Sinon pourquoi ne pas stocker la date de leur derniere visite au lieu de la mettre dans la table user (il me semble).
derniere visite : bonne idée
combien d'images différentes a-t-il vu? en voici une autre (plus difficile à maintenir à jour correctement).
Hors ligne
flipflip a écrit:
- nb_total_pictures : nombre total de photos que l'utilisateur peut voir (demande 262)
Je vois pas trop l'interet ?
L'intérêt, c'est d'éviter le calcul à chaque affichage de page:
$query = ' SELECT COUNT(DISTINCT(image_id)) as total FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id NOT IN ('.$user['forbidden_categories'].') ;';
flipflip a écrit:
Sinon pourquoi ne pas stocker la date de leur derniere visite au lieu de la mettre dans la table user (il me semble).
Cette information n'aurait à mon avis rien à faire dans le cache, mais aurait toute sa place dans #user_infos. demande 70
Hors ligne
L'intérêt, c'est d'éviter le calcul à chaque affichage de page
Effectivement je n'avais pas pensé au petit compteur qui affiche le nombre de photos visibles... A dire vrai je ne voyais pas du tout de quoi tu parlais ;)
Hors ligne