我正在使用Eloquent从数据库中获取结果。
该表具有大量行(〜1百万),使用orderBy()
时响应时间大大增加。
这是我的查询,只是一个简单的搜索字符串匹配项:
Movie::selectRaw("id, title, poster")->whereRaw("MATCH(title) AGAINST('$search*' IN BOOLEAN MODE)")->orderBy('popularity', 'desc')->take(10)->get();
不幸的是,必须按受欢迎程度排序,因为否则前10个结果几乎总是无关紧要的。
如果有帮助的话,我曾经使用where('title', 'LIKE', '%'.$search.'%')
,但是后来我将方法更改为MATCH(title) AGAINST('$search')
,从而显着提高了性能,但遗憾的是orderBy()
却扼杀了这种改进。
有什么办法可以加快这个过程,或者有一种解决方法,所以我可以完全避免使用orderBy()
?