Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laden von enwiki-latest-categorylinks.sql in mysql

1) Trennen Sie die SQL-Dump-Datei in zwei Teile:Erstellung und Daten

  1. 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.

  1. 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.

  1. 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.