如何优化具有许多结果的MySQL / MyISAM全文搜索

问题描述 投票:0回答:1

我有一个MySQL MyISAM表,在关键字列和2000万行中具有全文索引。当搜索稀有单词时,它会很好地工作,例如:

SELECT count(*) FROM books WHERE MATCH(keywords) AGAINST ('+DUCK' IN BOOLEAN MODE)

(0.005s,2k结果)

但是当我搜索更常用的术语时,它会慢很多:

SELECT count(*) FROM books WHERE MATCH(keywords) AGAINST ('+YES' IN BOOLEAN MODE)

((5s,2百万结果)

这很有意义,因为最后一个返回的行要多得多,但是如何在文本搜索之前对行进行预过滤?这不起作用:

SELECT count(*) FROM books WHERE date > "2019-09-23" AND MATCH(keywords) AGAINST ('+YES' IN BOOLEAN MODE)

(5s,0结果)

mysql performance full-text-search bigdata
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.