mysql order by非常慢,从1000000行开始,我们有将近300000个搜索结果

bpsygsoo  于 2021-06-17  发布在  Mysql
关注(0)|答案(0)|浏览(240)

当我们在mysql中从1000000行进行自然搜索时,我们有将近300000个搜索结果。当我们要选择自然得分最高的前2000个文档时,此查询持续7-8秒。
这个时间对我们来说太长了。我们怎样才能缩短第一个2000年按自然评级排序挑选的时间?
事先谢谢你的帮助。

select (match(baslik,detay) against('+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc' in natural LANGUAGE mode)) as n from ictihat 
 where   (match(baslik,detay) against('+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc +Deyn +Vecibe +Evam +Liability +Kredi +Ödev +Ödünç +Namus +borcu +Takanak +Medyun +Debitor +Zimemdar +Yükümlü +Verecekli +Bölük +Çember +Çevre +İdare +Menzil +Ofis +Temşiyet +Yürütme +Curator +Kayyum +Yeğleme +Salahiyettar +Salâhiyyetdâr +Salahiyetli +Mezun' in natural LANGUAGE mode))

**order by n desc**LIMIT 0,2000

结果:4.703秒
解释:

1 SIMPLE ictihat fulltext aramafull aramafull 0 const 1 100.00 Using where; Using filesort
select (match(baslik,detay) against('+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc' in natural LANGUAGE mode)) as n from ictihat 
 where   (match(baslik,detay) against('+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc +Deyn +Vecibe +Evam +Liability +Kredi +Ödev +Ödünç +Namus +borcu +Takanak +Medyun +Debitor +Zimemdar +Yükümlü +Verecekli +Bölük +Çember +Çevre +İdare +Menzil +Ofis +Temşiyet +Yürütme +Curator +Kayyum +Yeğleme +Salahiyettar +Salâhiyyetdâr +Salahiyetli +Mezun' in natural LANGUAGE mode))
 LIMIT 0,2000

结果:1.005秒
解释:1个简单的ictihat全文aramafull aramafull 0 const 1 100.00使用where

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题