Około 2 miesiące temu zaimportowałem dane do EnWikipedia (http://dumps.wikimedia.org/enwiki/20120211/) do mysql.Tworzenie indeksu trwa zbyt długo
Po zakończeniu importowania danych EnWikipedia przez około 2 miesiące tworzyłem indeks w tabelach bazy danych EnWikipedia w mysql.
Teraz osiągnąłem punkt tworzenia indeksu w "linkach do stron".
Jednak wydaje się, że upłynięcie tego momentu zajmuje nieskończenie wiele czasu.
Dlatego sprawdziłem czas pozostały do przejścia, aby upewnić się, że moja intuicja była poprawna lub nie.
W rezultacie, czas przewidywany pozostający wynosił 60 dni (przy założeniu, że tworzę indeks „pagelinks” jeszcze raz od początku.)
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).
Mój serwer jest ... wersji Linux 2.6.32 -5-amd64 (Debian 2.6.32-39), Pamięć 16 GB, Intel Core 2.39Ghz
Czy to powszechne zjawisko w tworzeniu indeksu tak długich dni? Czy ktoś ma dobre rozwiązanie, aby szybciej utworzyć indeks?
Z góry dziękuję!
P.S: Wykonałem następujące operacje dla sprawdzenia pozostałego czasu.
Odniesienia (Niestety, strona nie jest napisana w języku japońskim): http://d.hatena.ne.jp/sh2/20110615
1st. Mam zapisy w "pagelink".
mysql> select count(*) from pagelinks;
+-----------+
| count(*) |
+-----------+
| 632047759 |
+-----------+
1 row in set (1 hour 25 min 26.18 sec)
2nd. Dostałem ilość rekordów zwiększoną na minutę.
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
komenda
$ 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
3rd. Obliczyłem prędkość nagrywania.
Według wyniku 2., prędkość zapisu jest
7233 records/minutes
4-ty. Następnie pozostały czas jest
(632047759/7233)/60/24 = 60 days
możliwy duplikat http : //stackoverflow.com/questions/2167522/innodb-takes-over-an-hour-to-import-600mb-file-myisam-in-a-few-minutes – SunKing2
Teraz to nazywam cierpliwością. Szacunek – fancyPants