2011-07-03 56 views
1

我知道這個問題上已經有很多問題了,但我需要更具體的信息。所以這裏是:如何優化全文搜索?

  1. 理想情況下應該使用最少的資源(CPU,內存)可以執行全文搜索的字符的最大長度是多少?
  2. 什麼時候應該決定使用LIKE %$str%還是全文搜索?
  3. 重要的是要同時使用兩個版本LIKE %$str%和全文搜索並動態使用最優化的搜索嗎?

回答

2
  1. 據我所知,它取決於單詞的數量,而不是字符。數量越少,mysql的速度越快。但不要讓這些妨礙你。
  2. 如果您可以使用全文搜索,請不要使用LIKE。除了可能會在一段時間內手動運行的查詢外,您不希望減慢該表上的INSERT。 你知道選擇速度與插入索引速度的速度,對吧?
  3. 在您沒有手動運行的查詢中始終使用FT(全文)搜索。 LIKE速度很慢,當行數增加時變得非常慢。這是因爲mysql引擎必須查看每行以回答您的查詢。金融時報保持一個索引,並確切知道在哪裏看。
+1

非常感謝。 :-)在第三個問題上擴展一點,當我搜索從MySQL FT搜索權限中排除的關鍵字時,我仍然必須使用'LIKE'?另外,人們如何搜索少於3個字符的字符串呢? – Sterex

+0

您仍然可以使用FT搜索。如果您想搜索每個單詞,您可以更改或禁用排除的單詞。還有一個選項可以索引少於3個字符的單詞。這些都是可配置的。看看這裏:http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html 'ft_min_word_len'和'ft_stopword_file'應該可以幫到你。 – stormbreaker

+1

非常感謝@風暴! :-)下班後會去。 :-) – Sterex