Salut à tous,
Je me demande comment implémenter une fonctionnalité afin qu'elle soit la plus performante possible.
J'ai un certain nombre de blogs (il peut être assez élevé, 1000+) et je dois implémenter un compteur de visites pour ces blogs.
Quelle est la meilleure solution?
1) J'insère un tuple contenant l'id du blog, la date et l'adresse ip du visiteur à chaque fois que quelqu'un visite un blog. Une fois par jour je vide cette table et j'incrémente le champs nb_visits du blog correspondant.
2) A chaque fois que quelqu'un visite le blog, j'incrémente directement le compteur.
Ce qui m'ennuie avec la solution 2, c'est que si mes souvenirs sont bons, la table blog va être lockée lors de la mise à jour du champs nb_visits. A moins que le lock ne soit placé qu'au niveau du tuple? J'ai donc peur que étant donné le nombre élevé de blogs et de visites, le temps d'attente pour obtenir le lock soit long.
La solution 1 me semble plus performante, mais ce qui m'ennuie avec celle-là c'est que pour afficher le compteur de visites il va falloir faire un count sur le blog_id dans une table qui va contenir des centaines de milliers de tuples.
Voilà, j'espère être clair.
Merci d'avance pour vos réponses!
Partager