Laravel 在大数据分页上性能缓慢

Sae*_*iry 4 mysql laravel eloquent

我的posts表中有 100k 条记录,表中有 100k 条记录users

当我使用laravel's分页时。返回数据的时间太长了...!

代码:

$posts = Post::join('users', 'posts.user_id', 'users.id')
    ->where('posts.status', '=', 1)
    ->where('users.status', '=', 1)
    ->paginate(10);
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题并获得更好的性能?

笔记

inRandomOrder()当我使用时我也遇到这个问题$posts

小智 7

您可以使用 Laravel simplePaginate() 方法。如果这对您来说足够的话,它只会显示“下一个”和“上一个”链接。 https://laravel.com/docs/5.0/pagination#usage

  • 是的,我正在使用这个。但这不是解决方案 (2认同)