[解决]想了好久,这种SQL用 Eloquent 如何写?
SELECT t1.* FROM items t1, (SELECT id FROM items WHERE status=1 LIMIT 57140,10 ) t2 WHERE t1.id=t2.id;
我的目的是为了优化分页性能。
问题已经解决了。
至于怎么解决的,肯定 Eloquent 解决的,下面有人说,多少数据就这么搞,那是你数据量少没体验过,
就简单的 SELECT id FROM items WHERE status=1 LIMIT 57140,10
这个语句,select * 和 select id 结果的响应速度相差 90 多倍。是有优化的必要的。
下面回复的哥们可以提供有用的解决方案,冷嘲热讽没意思的。
我得解决方案很简单,用 hasOne 自己关联自己。Item::with('sf')->select('id')->orderByDesc('id')->paginate(10);
查询的时候在预加载自己。
这样千万级分页和几百条的性能是一样的。
你输出的时候只输出 sf 下的内容就是你实际内容就可以了。
推荐文章: