mysql的Ft_hints: no_ranking

是不是发现找遍全网也没有找到相关资料?

巧了,我也是,所以我这里来进行一次大胆分析(基本靠猜)


在使用mysql的fulltext索引(全文索引)时,使用explain则会在extra中出现这句提示:Ft_hints: no_ranking

我们先看看mysql官方怎么说:

– Also, if avoiding the rank information in the projection (SELECT clause) and using other aggregations like count(*), will use the “no ranking” FT_hints. The LIMIT hint won’t be used if invoked explicitly an ORDER BY and the MATCH clause in the projection.
– 引用:https://blog.pythian.com/mysql-innodbs-full-text-search-overview/

大概意思就是在使用聚合函数之类的时候就会出现no ranking

接下来就是大胆猜测了

mysql的全文索引也是基于倒排索引的,所以他也是无序存储着的,
所以在返回搜索结果时都要根据相关度来进行排序,也就是ranking,
但是如果你使用了聚合函数,例如count(*)或者group by这些,那么你的结果就只有聚合之后的那一行了,既然只有一行,那肯定就不用排序啦,也就是no ranking


所以我猜测Ft_hints: no_ranking意思就是你使用了聚合函数,因此不需要进行排序的意思

posted @ 2019-10-13 23:50  肥宅快乐码  阅读(564)  评论(0编辑  收藏  举报