redis - 数据库表设计的一些疑问,比如一篇文章(点赞数,浏览数,评论数要不要存在文章的表里)
phpcn_u1582
phpcn_u1582 2017-04-28 09:03:59
0
2
1436

一直以来都有这个疑问
一张文章表,文章有点赞、浏览记录,评论,都是三个独立的表,查询文章列表数据时需要展示这三个数量。


两种方案:

  1. 在文章表里增加三个数量字段,每次被点赞(取消点赞)/评论(删除评论)/浏览,都去更新这个字段,这样未免效率过低了,尤其是浏览量每次都要更新,而且冗余了字段

  2. 每次去关联查询总数,这样速度太慢。
    如果放到缓存/搜索引擎里,那还需要每次都去更新吗,这样也太浪费了

phpcn_u1582
phpcn_u1582

répondre à tous(2)
小葫芦

Lorsque le nombre de tables de commentaires augmente dans une certaine mesure, il est nécessaire d'ajouter des champs redondants. Bien qu'il y ait quelques champs redondants supplémentaires à gérer, l'amélioration des performances est évidente. Après tout, personne ne veut que la base de données soit submergée, n'est-ce pas ?

De plus, le nombre de likes, de commentaires et de lectures ne sont pas des données qui nécessitent des performances élevées en temps réel, il n'est donc pas nécessaire de mettre à jour ce champ à chaque fois que vous aimez (annulez un like)/commentez (supprimez un commentaire) )/browse Vous pouvez écrire un script planifié pour mettre à jour ces champs redondants toutes les demi-heures ou heures

黄舟

La conception de la sous-table est correcte Si l'on considère l'augmentation du volume de données, une table lourde n'est pas facile à utiliser. Ceci est d’autant plus nécessaire si l’on considère qu’il y aura des informations supplémentaires plus tard comme des likes.

Il est recommandé de mettre en cache et de mettre à jour le cache uniquement en temps réel. Une persistance spécifique peut être exécutée régulièrement.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal