Il y a environ 2 mois, j'ai importé des données EnWikipedia (http://dumps.wikimedia.org/enwiki/20120211/) dans mysql. Après avoir terminé l'importation des données EnWikipedia, j'ai créé l'index dans les tables de la base de données EnWikipedia dans mysql pendant environ 2 mois.Créer un index prend trop de temps
Maintenant, j'ai atteint le point de créer l'index dans "pagelinks".
Cependant, il semble prendre un temps infini pour passer ce point.
Par conséquent, j'ai vérifié le temps restant à passer pour m'assurer que mon intuition était correcte ou non.
En conséquence, le temps restant attendu était de 60 jours (en supposant que je crée l'index dans "pagelinks" depuis le début.)
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).
Mon serveur est ... version Linux 2.6.32 -5-amd64 (Debian 2.6.32-39), mémoire 16Go, 2.39Ghz Intel 4 core
Est-ce un phénomène courant pour créer un index si long? Est-ce que quelqu'un a une bonne solution pour créer un index plus rapidement?
Merci d'avance!
P.S: J'ai effectué les opérations suivantes pour vérifier le temps restant.
Références (Désolé, la page suivante est écrit en japonais): http://d.hatena.ne.jp/sh2/20110615
1er. J'ai des enregistrements dans "pagelink".
mysql> select count(*) from pagelinks;
+-----------+
| count(*) |
+-----------+
| 632047759 |
+-----------+
1 row in set (1 hour 25 min 26.18 sec)
2. J'ai obtenu le nombre d'enregistrements augmentés par minute.
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
commande
$ 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. J'ai calculé la vitesse d'enregistrement.
Selon le résultat de 2., la vitesse d'enregistrement est
7233 records/minutes
4. Ensuite, le temps restant est
(632047759/7233)/60/24 = 60 days
: //stackoverflow.com/questions/2167522/innodb-takes-over-an-hour-to-import-600mb-file-myisam-in-a-few-minutes – SunKing2
Maintenant c'est ce que j'appelle de la patience Respect – fancyPants