【发布时间】:2014-06-01 02:54:39
【问题描述】:
好的,所以我有一个基于提要的网络应用程序,有点像 facebook 的 News Feed。问题在于我生成提要的方式。我不确定这是最有效和/或最好的方法。
我使用 Laravel + Eloquent ORM
$feed = Post::whereIn('id', $following_ids)
->orderBy('created_at', 'desc')
->take(20)
->skip($page)
->get();
其中$following_ids 是用户关注的ID 数组。
问题在于,据我了解,上述语句生成的 SQL 会导致您关注的用户的每篇帖子首先被加载,然后按时间顺序排序,仅实际使用一小部分。
有没有更有效的方法来做到这一点?这看起来真的很浪费。
【问题讨论】:
-
我认为开发 SQL 是为了处理这样的查询。如果您发现性能问题,您可以稍后“缓存”帖子列表
标签: php sql orm laravel eloquent