数据量比较大时,Laravel 获取分页数据比较耗时,明显慢很多,请问您是怎么解决的呢?

/ Query 1 - 2018-08-30 13:16:22 [240.3ms] /
select from video where create_time >= '1535558400000' and like_count >= '0' order by like_count desc, create_time desc limit 30 offset 0;
/
==================================================/
/
Query 1 - 2018-08-30 13:20:23 [3467.66ms] /
select
from video where create_time >= '1535558400000' and like_count >= '0' order by like_count desc, create_time desc limit 30 offset 5970;
/==================================================/

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

有很多方法的。简单一点的可以做缓存优化。

5年前 评论

like_count 这个字段区分度应该不高

5年前 评论

你找到解决方案 了吗, @tim-laravel 我在阿里云写sql只要600多毫秒,但是使用laravel 分页就要一秒多 了

5年前 评论

ajax做分页,要加载数据的时候 在加载

5年前 评论

这种能否从业务逻辑上优化呢?现在貌似有不少是按权重的这种概念来解决,权重与创建时间、点赞数有关,并且会定时对一些记录进行降权处理,否则后期可能还会有浏览次数呀,评论数这些需要加到排序里面

5年前 评论

楼主找到解决方案了吗?我也碰到同样的问题,sql执行1秒多 分页10+秒

4年前 评论
66

laravel的分页 会先统计一次总数 所以使用 分页会 其实会执行2条SQL

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!