2011-10-07 25 views
0

我有一張表,其中包含以utf_unicode格式存儲的所有語言中的100萬個唯一關鍵字。最近我一直有選擇的問題,每個選擇需要1秒鐘。這確實會導致查詢速度減慢。包含大約100萬個唯一關鍵字的表utf_unicode性能

的關鍵字表中的結構是(keyword_idkeyworddirty) - >的keyword_id是主鍵,keyword具有獨特的索引和dirty具有簡單的索引。 keyword有一個varchar類型,最多20個字符。 dirty是一個布爾值。

在where字段中使用「keyword」進行選擇時會遇到問題。我怎樣才能加快這張桌子。

我正在使用MySQL和PHP。

示例查詢

SELECT k_id 
FROM table 
WHERE keyword = "movies" 
+0

你能展示一個示例查詢來演示這個問題嗎? – JohnFx

+0

它是MyISAM還是InnoDb表? –

+0

@MyISAM ......... – Vish

回答

1

你有沒有使用存儲表而不是在我的經驗的MyISAM的考慮的是去快10倍,然後MyISAM數據。如果服務器崩潰,您只需要另一張表就可以重建。而不是varchar使用char 20.這將使表格成爲固定格式,並且mysql將能夠更快地找到它的結果。

+0

顯然,我在某處讀過,內存表很慢。當我讀到時我感到震驚,但是如果我確實按照你的建議行事,你能否確認內存表會更快。 :) – Vish

+0

根據我的經驗,他們的速度比我說的快了10倍。除非需要,否則我不這樣做的唯一原因是因爲在重新啓動mysql時重新創建表的副本所帶來的額外痛苦。 –

相關問題