1) Séparez le fichier de vidage SQL en deux parties :création et données
grep -n "Dumping data" enwiki-latest-redirect.sql
Cela renverra le numéro de ligne séparant la création et les données des parties de table du fichier. Que ce soit 46.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Le nombre que nous obtenons dans la dernière commande est utilisé comme entrée pour tail
pour obtenir la partie données du fichier.
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Le nombre que nous obtenons dans la première commande est utilisé comme entrée pour head
pour obtenir la partie création de table du fichier.
2) Supprimer les index de redirect-creation.sql
Ce qui suit est le CREATE TABLE
d'origine déclaration dans le vidage :
CREATE TABLE `redirect` (
`rd_from` int(8) unsigned NOT NULL DEFAULT '0',
`rd_namespace` int(11) NOT NULL DEFAULT '0',
`rd_title` varbinary(255) NOT NULL DEFAULT '',
`rd_interwiki` varbinary(32) DEFAULT NULL,
`rd_fragment` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`rd_from`),
KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`)
) ENGINE=InnoDB DEFAULT CHARSET=binary;
Voici la version souhaitée après suppression des index :
CREATE TABLE `redirect` (
`rd_from` int(8) unsigned NOT NULL DEFAULT '0',
`rd_namespace` int(11) NOT NULL DEFAULT '0',
`rd_title` varbinary(255) NOT NULL DEFAULT '',
`rd_interwiki` varbinary(32) DEFAULT NULL,
`rd_fragment` varbinary(255) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=binary;
Modifiez le page-creation.sql pour supprimer les index comme indiqué ci-dessus.
3) Charger les fichiers créés
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Créez des index sur les champs de votre choix après avoir chargé les données
create index idx_redirect_rd_from on redirect(rd_from)
Je suis capable de charger le tableau des liens de catégorie en moins d'une heure sur mon Macbook Pro en suivant les étapes ci-dessus.