2009-09-24 55 views
1

目前,我有以下的全文索引設置:創建全文檢索優化

全文於:

號碼 - 名稱 - 後綴 - 方向 - 城市 - 州 - 郵政編碼

Select id, MATCH(Number, Name, Suffix, Direction, City, State, ZIPCode) 
AGAINST ("Test") as Relevance from test where 1, 
and MATCH(Number, Name, Suffix, Direction, City, State, ZIPCode)  
AGAINST ("+Test" IN Boolean Mode) HAVING Relevance > 0.2 

一個地址。它目前在MySQL的MyISAM數據庫類型,但我真的不喜歡當昂貴的查詢命中時,他們鎖定整個表,並超過一百萬行,我試圖優化我能做的最好。

切換到Innodb有幫助嗎? Innodb支持MyISAM的查詢類型嗎?

有關如何更好地優化此查詢並保留全文搜索的其他建議?

謝謝!

回答

1

InnoDB不支持全文搜索。

另一種選擇是使用Sphinx,這很容易設置和快速。

+0

將看看這個。還有其他明顯的區別嗎? – Petrogad 2009-09-24 19:28:36

+1

我在嘗試優化大型應用程序時使用了全文搜索。表演一般。我們最終切換到innodb並使用其他索引。雖然完整的通配符搜索(例如'%some%')會非常緩慢,但性能大致相同。最後,我轉向獅身人面像,永遠不會回頭。 Sphinx與MySQL很好地集成,但作爲一個獨立的進程運行。 – jonstjohn 2009-09-24 19:39:37

+0

真棒會給它一個旋風!感謝:D – Petrogad 2009-09-24 20:09:51