我有一个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结果)