多对多关系的问题,whereHas查询很慢,大概要十几秒,怎么解决呐?
文章表(articles)
id , title …
推荐表(recommends)
id , title …
推荐文章表(articles_recommends)
id,article_id,recommend_id
分类表(categories)
id name ….
文章分类表(articles_categories)
id,article_id,category_id
文章表
多对多关联分类表
文章表
多对多关联推荐表
请问,已知推荐表的ID 为 1 分类的ID 为2
查询 文章推荐表的recommend_id = 1 并且 文章分类表的 categroy_id = 2的所有文章怎么查询?
目前:
Recommend::find(1)->articles()->whereHas('categories',function ($q) {
$q -> where('category_id',2);
})->limit(10)->get();
这样的查询很慢,数据库文章大概有一两万, 关联表大概也有一两万,查询速度很慢,将近20多秒,想提问一下大佬,怎么解决查询很慢的这个问题,并且优雅的解决。。。
推荐文章: