2012-03-13 11 views
0

私はMySQLデータベースに格納されたWikipediaのローカルコピー(〜30GO英語)を持っています。 は、私は2つの列があります。MySQL SELECTクエリは、ウィキペディアのローカルコピーでしばらく時間がかかります

  1. 「タイトル」whitchでプライマリキーや記事のタイトル(VARCHAR(238))
  2. 「ボディ」whitch記事の内容がある(MEDIUMTEXT)

私の問題は、(主キーを使用して)非常に単純なクエリの場合、(これらの記事の情報を10カ国語で取得するプログラムを作成しているので、 /秒はあまりにも少ない)。私はそれは時間がかかる理由は分からない

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

(インデックスを使用して取るとき、usualy私の選択クエリを〜1msの):

クエリは次のようです。もう一度クエリを実行し

analyze table wiki_en; 

+0

ドゥーにはインデックスがありますか? –

+0

もしそれが本当にプライマリキーであれば、クエリは一意の行になりますので、 'LIMIT'節は必要ありません。 – Neil

+0

英語ではギガバイトです:) – biziclop

答えて

0

はこれを試してみてください。

また、このような「ワイド」キーの使用はお勧めしません。単純な整数のIDフィールド(そこのすべてのテーブルの99%のような)を使わないのはなぜですか?

最後に、テーブル定義にtitlePRIMARY KEYと定義しましたか?そうでない場合は、その列にはCREATE UNIQUE INDEX ...が必要です。

+0

私はインデックスとしてタイトルを使用しているので、彼のIDにもかかわらず彼の名前の記事を見つけることができます(私は各記事をスキャンし、それぞれ別の言語のwiki-linkを探していますので、 。タイトルはプライマリキーとして定義されます。 –

+0

私はテーブルを分析しようとしましたが、私は助けません... –

関連する問題