約2か月前、私はEnWikipediaデータ(http://dumps.wikimedia.org/enwiki/20120211/)をmysqlにインポートしました。
EnWikipediaデータのインポートが完了した後、約2か月間mysqlのEnWikipediaデータベースのテーブルにインデックスを作成しています。
これで、「ページリンク」にインデックスを作成するようになりました。
しかし、そのポイントを通過するのに無限の時間がかかるようです。
そのため、残り時間をチェックして、直感が正しいかどうかを確認しました。
その結果、予想残り時間は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.39GhzIntel4コア
インデックスを作成するための一般的な現象は、非常に長い日数を要しますか?誰かがより迅速にインデックスを作成するための良い解決策を持っていますか?
前もって感謝します !
PS:残り時間を確認するために以下の操作を行いました。
参考文献(申し訳ありませんが、次のページは日本語で書かれています):http ://d.hatena.ne.jp/sh2/20110615
1日 「pagelink」にレコードがあります。
mysql> select count(*) from pagelinks;
+-----------+
| count(*) |
+-----------+
| 632047759 |
+-----------+
1 row in set (1 hour 25 min 26.18 sec)
2位。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
3位。録音速度を計算しました。
2.の結果によると、記録速度は
7233 records/minutes
4日。残り時間は
(632047759/7233)/60/24 = 60 days