如何使用whereHas优化此查询?

拉杰德·乔希(Rajender Joshi)

我正在使用此查询来筛选出具有城市和类别的商店。当我在stores表中有大约1000条记录时,它工作正常现在,当我有5000条记录时,大约需要3到10秒才能生成结果。

在我的情况下,商店属于多个类别。

我该如何使用雄辩orm优化此查询DB::raw()

$stores = Store::where('city_id', $city_id)
        ->where('disabled', '0')
        ->whereHas('categories', function($q) use ($category_id){
            $q->where('category_id', '=', $category_id);
        })
        ->orderBy('rating','DESC')->paginate(10);
拉杰德·乔希(Rajender Joshi)

我使用whereRawasDB::raw()DB::select()不能paginate()使用集合解决了我的问题

问题:

执行时间:11.449304103851s

city_id = 6$category_id = 1

$stores = Store::where('city_id', $city_id)
        ->where('disabled', '0')
        ->whereHas('categories', function($q) use ($category_id){
            $q->where('category_id', '=', $category_id);
        })
        ->orderBy('rating','DESC')->paginate(10);

解决方案:

执行时间:0.033660888671875s

city_id = 6$category_id = 1

$stores = Store::
    where('city_id', $city_id)
    ->where('disabled', '0')
    ->whereRaw('stores.id in (select store_id from store_categories_pivot where category_id = ?)', [$category_id])
    ->orderBy('rating','DESC')
    ->paginate(10);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

如何使用表联接优化此查询?

来自分类Dev

如何使用Rails优化此查询

来自分类Dev

如何使用自联接优化此查询?

来自分类Dev

如何优化此查询?

来自分类Dev

如何优化此查询?

来自分类Dev

如何优化此LinQ查询?

来自分类Dev

如何优化此ActiveRecord查询?

来自分类Dev

如何优化此专用查询?

来自分类Dev

如何优化此SharePoint查询条款?

来自分类Dev

如何优化此MySQL查询以执行Fastar?

来自分类Dev

如何优化此SQL查询并缩短?

来自分类Dev

如何优化在Postgresql中查询此数据?

来自分类Dev

如何优化此查询以防止超时

来自分类Dev

请问如何优化此mysql查询?

来自分类Dev

如何优化此MySQL查询以执行Fastar?

来自分类Dev

如何优化此查询?检索列的值

来自分类Dev

如何使用ARM NEON优化此代码?

来自分类Dev

如何使用javascript优化此代码?

来自分类Dev

如何优化此查询的执行时间

来自分类Dev

如何在执行速度方面优化此查询

来自分类Dev

如何优化此依赖日期值的JOIN查询?

来自分类Dev

如何优化此MYSQL查询-联接多个表

来自分类Dev

我如何优化此查询以缩短执行时间

来自分类Dev

如何优化此 MySQL 查询 - 在视图中?性能调优

来自分类Dev

优化/简化此SQL查询

来自分类Dev

优化此查询中的计算?

来自分类Dev

优化/简化此SQL查询

来自分类Dev

如何优化此UDF