假设我有一个User模型和一个Favorite模型。我想知道用户有多少收藏。
我看到你可以通过两种方式实现这一目标。
创建收藏夹时,以原子方式递增用户模型上的计数器属性。使用user_instance.favorite_count
查询用户的收藏计数:user_instance.favorite_set.count()
我认为随着数据库的增长,计数变得更加昂贵。
哪种实施更具可扩展性?
答案 0 :(得分:0)
我在这里闻到一些过早的优化。数据库非常擅长计算内容。除非你已经测量并且看到一些可识别的缓慢,否则你不应该试图去反规范化:很难做到正确并且总是有失去同步的风险。继续查询;并且不要忘记您可以使用聚合来一次查询用户的查询集的计数。