Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la bonne façon de compter les commentaires d'articles, les hits et les likes dans un index d'articles ?

Il serait préférable d'admettre la redondance dans ce cas, pour améliorer la vitesse. Au tableau des actualités, ajoutez ces champs :

comments_count int not null default 0,
likes_count int not null default 0,
hits_count int not null default 0

Lorsqu'un commentaire/j'aime/hit est ajouté/supprimé, si la base de données prend en charge les déclencheurs, déclenchez une incrémentation/décrémentation du compteur référencé, et si ce n'est pas le cas, faites-le manuellement à chaque insertion/suppression (procédure stockée peut-être ?).

Ce type de données est plus souvent lu qu'écrit, donc pour optimiser la vitesse de lecture, ralentir la vitesse d'écriture et l'espace de stockage n'est pas un gros problème.

De temps en temps, il serait acceptable d'exécuter une requête qui mettrait à jour ces compteurs si, pour une raison quelconque, ils devenaient erronés.