1) Trennen Sie die SQL-Dump-Datei in zwei Teile:Erstellung und Daten
grep -n "Dumping data" enwiki-latest-redirect.sql
Dadurch wird die Zeilennummer zurückgegeben, die die Erstellung und die Daten der Tabellenteile der Datei trennt. Lass es 46 sein.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Die Zahl, die wir im letzten Befehl erhalten, wird als Eingabe für tail
verwendet um den Datenteil der Datei zu erhalten.
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Die Zahl, die wir im ersten Befehl erhalten, wird als Eingabe für head
verwendet um den Tabellenerstellungsteil der Datei zu erhalten.
2) Entfernen Sie Indizes aus der Datei „redirect-creation.sql“
Das Folgende ist die ursprüngliche CREATE TABLE
Anweisung im Dump:
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;
Das Folgende ist die gewünschte Version nach dem Entfernen der Indizes:
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;
Bearbeiten Sie die Datei page-creation.sql, um Indizes wie oben gezeigt zu entfernen.
3) Laden Sie die erstellten Dateien
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Erstellen Sie Indizes für die gewünschten Felder, nachdem Sie die Daten geladen haben
create index idx_redirect_rd_from on redirect(rd_from)
Ich kann die CategoryLinks-Tabelle in weniger als einer Stunde auf mein Macbook Pro laden, indem ich die obigen Schritte befolge.