需要一种方法来提高我网站的基于 SQL 的 Activity Feed 的性能。我们在 Heroku 上使用 Django。
现在我们正在使用 actstream,它是一个 Django 应用程序,它使用 Django ORM 中的通用外键实现活动提要。基本上,每个动作对于它的actor和它可能作用的任何对象都有通用的外键,像这样:
动作:(粘土-演员)在(安德鲁对星巴克的评论-目标)上写了一个(评论-动作对象)
随着我们的扩展,它变得太慢了,这是可以理解的,因为它依赖于大而昂贵的 SQL 连接。
我看到至少两个选项:
- 在 SQL 数据库之上放置一个 Redis 层并从那里获取活动源。
- 尝试绕过 Django ORM 并在原始 SQL 中执行所有查询,我知道这可以提高性能。
任何人对这两个或其他想法有任何想法,我很想听听。