1) Scheid het SQL-dumpbestand in twee delen:creatie en gegevens
grep -n "Dumping data" enwiki-latest-redirect.sql
Dit retourneert het regelnummer dat de aanmaak en de gegevens van de tabeldelen van het bestand scheidt. Laat het 46 zijn.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Het nummer dat we in het laatste commando krijgen, wordt gebruikt als invoer voor tail
om het gegevensgedeelte van het bestand te krijgen.
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Het nummer dat we in het eerste commando krijgen, wordt gebruikt als invoer voor head
om het tabelaanmaakgedeelte van het bestand te krijgen.
2) Verwijder indexen uit de redirect-creation.sql
Het volgende is de originele CREATE TABLE
verklaring op de stortplaats:
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;
Het volgende is de gewenste versie na het verwijderen van de indexen:
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;
Bewerk de page-creation.sql om indexen te verwijderen zoals hierboven getoond.
3) Laad de aangemaakte bestanden
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Maak indexen op velden die u wilt na het laden van de gegevens
create index idx_redirect_rd_from on redirect(rd_from)
Ik kan de tabel met categorielinks in minder dan een uur op mijn Macbook Pro laden door de bovenstaande stappen te volgen.