SQL Performance tuning (#952)

MySQL has problems with executing this subquery efficiently.
This commit is contained in:
Maxim Chistyakov 2016-05-12 17:07:41 +03:00 committed by Franz Liedke
parent 68c4dec763
commit 50bbe32175

View File

@ -146,9 +146,11 @@ class PostRepository
protected function getDiscussionsForPosts($postIds, User $actor)
{
return Discussion::whereIn('id', function ($query) use ($postIds) {
$query->select('discussion_id')->from('posts')->whereIn('id', $postIds);
})
return Discussion::query()
->select('discussions.*')
->join('posts', 'posts.discussion_id', '=', 'discussions.id')
->whereIn('posts.id', $postIds)
->groupBy('discussions.id')
->whereVisibleTo($actor)
->get();
}