我在MySQL中使用全文我需要在兩個不同的表中選擇兩個字段 還有第一個表中名稱字段的搜索優先級。這就是爲什麼我通過排序將結果乘以2。這是一個很好的古怪的節目。但是,有太多時間存在問題,並且在某些情況下大約需要30秒。我應該做些什麼來提高查詢的速度?如何加快MYSQL全文搜索或更改查詢
注:
ft_stopword_file = 「」
的ft_min_word_len = 1
每個表的記錄數爲20萬
查詢:
$search="hello* my* name* in* prim* this* in* a* test*"
SELECT f.id, f.name FROM
Find f left join Movie m on f.`tID`=m.`id`
WHERE MATCH(f.`name`,m.`text`) AGAINST('$search' IN BOOLEAN MODE)
ORDER BY MATCH(f.`name`,m.`text`) AGAINST('$search' IN BOOLEAN MODE) +
(MATCH(f.`name`) AGAINST('$search' IN BOOLEAN MODE) *2) DESC , length(f.Address)
LIMIT 30
感謝您的回覆,但此查詢有錯誤「未知列'relevance1'在'where子句'」 – AmirHadi
是的,意味着您無法從WHERE中的選擇列表中引用MATCH。因此,您必須在其中調用完整的MATCH,但請參閱您是否至少可以在ORDERY BY中重新使用relevance1和relevance2。 – andrews
非常感謝你 它比以前快得多 – AmirHadi