2012-03-13 39 views
0

我有一個存儲在MySQL數據庫中的維基百科(〜30GO for english)的本地副本。 我有兩列:MySQL SELECT查詢在維基百科本地副本上需要一段時間

  1. 「稱號」 whitch是主鍵和文章的標題(VARCHAR(238))
  2. 「身體」 whitch是文章的內容(MEDIUMTEXT)

我的問題是,對於一個非常簡單的查詢(使用主鍵)它需要一段時間(〜50毫秒是太多了,因爲我創建的程序,從這些文章從10種語言sequencialy信息; 2篇文章對於每種語言)/秒太少)。

查詢如下:

SELECT * FROM wiki_en WHERE title = "Appel" LIMIT 1 

我不知道爲什麼花了這麼長時間(usualy,我選擇查詢使用索引時需要1ms的〜)。

+0

你有索引嗎? – 2012-03-13 23:23:08

+0

如果它真的是主鍵,那麼你的查詢將產生一個唯一的行,所以你不需要一個'LIMIT'子句。 – Neil 2012-03-13 23:36:20

+0

這是吉字節英語:) – biziclop 2012-03-13 23:43:39

回答

0

試試這個:

analyze table wiki_en; 

然後再次運行該查詢。

另外,不推薦使用這樣的「寬」鍵。爲什麼不使用一個簡單的整數ID字段(就像那裏所有表格的99%)?

最後,你真的在​​你的表定義中定義titlePRIMARY KEY嗎?如果不是,則需要CREATE UNIQUE INDEX ...

+0

我使用標題作爲索引,所以我可以找到一篇文章與他的名字,儘管他的ID(我掃描每篇文章,併爲每個我尋找其他語言的維基鏈接,所以我可以得到這篇文章爲每種語言) 。標題被定義爲主鍵。 – 2012-03-14 00:06:28

+0

我試圖分析表格,但我沒有幫助... – 2012-03-14 00:37:22