我有这个慢查询(26秒):
SELECT uniqueIDS FROM search_V2 WHERE siteID=1 AND status=1 AND (MATCH(data) AGAINST ('scale' IN BOOLEAN MODE));
我首先想对 siteID_status 索引进行查询,然后使用完整的搜索索引。
任何解决方案?
答案 0 :(得分:2)
所以这是我找到的最佳解决方案:
SELECT uniqueIDS FROM
(
SELECT * FROM search_V2 WHERE siteID=1 AND status=1
) A
WHERE MATCH(data) AGAINST ('scale' IN BOOLEAN MODE);
我希望它也可以帮助别人。
答案 1 :(得分:0)
您可以先告诉查询要遵循哪个索引。请参阅https://dev.mysql.com/doc/refman/8.0/en/index-hints.html处的索引提示。如果不对其进行测试,您的查询就会像
一样 SELECT uniqueIDS FROM search_V2 WHERE siteID=1 AND status=1 AND (MATCH(data) AGAINST ('scale' IN BOOLEAN MODE)) USE INDEX(siteID_status,fulltext_index);
fulltext_index
是您的全文索引的名称。希望它有效,但你很亲密。