标题: thinkphp翻页过慢的解决方案
时间: 02-18 18:41发布,02-18 18:42修改
第一个方法肯定考虑从/thinkphp/library/think/db/Query.php 下手,改为子查询
本次采用的是数据分表法,对于大容量内容翻页
慢, 就是limit的问题,比如:limit 150000,10
将主键列复制
对这个表进行分页
$results = db('content_copy')
->order('id')
->paginate(15,false,[
'query'=>request()->param()
]);
取出数据id
$view_id = implode(',',array_column($results->items(), 'id'));
查询内容
$results2 = db('content')
->where('id','in',$view_id)
->select();
回写
$results->setitems($results2);
setitems需要在thinkphp/library/think/Paginator.php
增加
public function setitems($items)
{
return $this->items = Collection::make($items);
}
当然了方法很多,这个方法也不算多好,想省事还得做触发器,而且还有搜索分页方面的问题,如果手撸一个分页函数似乎也是不错的选择
『回复列表(3|隐藏机器人聊天)』