2012-04-12 12 views
5

約2か月前、私はEnWikipediaデータ(http://dumps.wikimedia.org/enwiki/20120211/)をmysqlにインポートしました。インデックスの作成に長時間を要する

EnWikipediaデータのインポートが完了した後、私は約2ヶ月間、MySQLのEnWikipediaデータベースのテーブルにインデックスを作成しています。

今、私は "pagelinks"でインデックスを作成しています。

しかし、その点を渡すのに無限の時間がかかるようです。

したがって、私の直感が正しいかどうかを確認するために、残りの時間を確認しました。

その結果、残り予想時間は、(私は初めから再び「pagelinks」にインデックスを作成すると仮定。)60日間であった

My EnWikipedia database has 7 tables: 
"categorylinks"(records: 60 mil, size: 23.5 GiB), 
"langlinks"(records: 15 mil, size: 1.5 GiB), 
"page"(records: 26 mil, size 4.9 GiB), 
"pagelinks"(records: 630 mil, size: 56.4 GiB), 
"redirect"(records: 6 mil, size: 327.8 MiB), 
"revision"(records: 26 mil, size: 4.6 GiB) and "text"(records: 26 mil, size: 60.8 GiB). 

私のサーバーは... Linuxバージョン2.6.32です-5-amd64(Debian 2.6.32-39)、メモリ16GB、2.39Ghz Intel 4コア

このような現象は、長い日数を要するインデックスの作成には共通の現象ですか? 誰かがインデックスをより迅速に作成する良いソリューションを持っていますか?

ありがとうございます!


P.S:残りの時間を確認するために以下の操作を行いました。 (申し訳ありませんが、以下のページが日本語で書かれている)

参考文献:http://d.hatena.ne.jp/sh2/20110615

第一。私は "pagelink"でレコードを取得しました。

mysql> select count(*) from pagelinks; 
+-----------+ 
| count(*) | 
+-----------+ 
| 632047759 | 
+-----------+ 
1 row in set (1 hour 25 min 26.18 sec) 

第二。 1分ごとに記録量が増えました。

getHandler_write.sh

#!/bin/bash 

while true 
do 
    cat <<_EOF_ 
SHOW GLOBAL STATUS LIKE 'Handler_write'; 
_EOF_ 
    sleep 60 
done | mysql -u root -p -N 

コマンド

$ sh getHandler_write.sh 
Enter password: 
Handler_write 1289808074 
Handler_write 1289814597 
Handler_write 1289822748 
Handler_write 1289829789 
Handler_write 1289836322 
Handler_write 1289844916 
Handler_write 1289852226 

第三。録音のスピードを計算しました。

は2の結果によれば、記録の速度は

7233 records/minutes 

4です。その後、残りの時間は

(632047759/7233)/60/24 = 60 days 
+0

可能なhttpの複製://stackoverflow.com/questions/2167522/innodb-takes-over-an-hour-to-import-600mb-file-myisam-in-a-fif-minutes – SunKing2

+3

今私が忍耐と呼んでいることです。敬意。 – fancyPants

答えて

6

ものはかなり大きなテーブルですので、私は、インデックスはかなり遅くなることを期待したいです。 6億3,000万レコードは多くのデータをインデックス化しています。見るべきことの1つは、パーティション化です。データセットが大きく、正しくパーティション化された表がないと、パフォーマンスが低下します。 using partioning on slow indexesインデックスを構築するためのバッファサイズの設定を調べることもできます(デフォルトは8MBですが、大きなテーブルの場合、遅くなります)。buffer size documentation

+0

ありがとうあなたのアドバイスをお願いします。 –

関連する問題