我在表上使用 InnoDB 全文搜索。我创建了 400.000 个虚拟报告并创建了全文。搜索一个单词的速度非常好。
SELECT count(*) from report where MATCH (reporttext) AGAINST ('dolor' IN BOOLEAN MODE) LIMIT 0, 1000
1 row(s) returned 0.717 sec / 0.000 sec
count(*)
199629
在解释查询时:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE report fulltext FTReportText FTReportText 0 NULL 1 "Using where"
到目前为止,我想说的是,现在当我们运行以下查询时:
SELECT count(*) from report where MATCH (reporttext) AGAINST ('"porttitor vulputate"' IN BOOLEAN MODE) LIMIT 0, 1000 1 row(s) returned
50.732 sec / 0.000 sec
count(*)
22947
解释 :
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE report fulltext FTReportText FTReportText 0 NULL 1 "Using where"
正如您现在看到的第二个查询,时间大约是 50 秒。精确词组搜索那么贵吗?
我在这里错过了什么吗?