讨论数量:
可以分批次查询
DB::table('xxx')->chunkById(100, function($results, $page){
foreach ($results as $item) {
// 操作
}
}, 'id');
有的老哥已经说了,具体问题具体分析。
1.如果是百万级数据表查询结果,那么索引大发好,避免全表扫描,直接命中;
2.如果只是记录,那么对外提供应该圈定范围,也能避免全表扫描,当然n+1的问题避免了也能提升查询效率;
3.如果是计算结果,那么可以定期做统计,把统计结果放入其他表、缓存或者非关系型数据库;
4.如果是导出,那就综合上述的处理+分块处理。
已解决。加了索引。开启了数据库缓存。进行了分区。