LOADING

inRandomOrder高性能优化

当数据库表中数据过3w之后inRandomOrder用起来就十分的慢还占用内存,现数据50w.
explan之后发现查询速度为0.32

解决方案

        $rand_arr = [];
        for ($i=0;$i<100;$i++){
            $rand_arr[] = mt_rand(500,10000);
        }
 $link_popular_record_false = Student::whereNotIn('id',$temp_link_popular)
                    ->whereIn('id',$rand_arr)
                    ->limit($limit-$link_count)
//                    ->inRandomOrder()
                    ->get();

用whereIn进行主键筛选就可以了 修改后查询效率为0.0026

标签: Laravel

添加新评论