Mysql
 sql >> Database >  >> RDS >> Mysql

caricamento di enwiki-latest-categorylinks.sql in mysql

1) Separare il file di dump SQL in due parti:creazione e dati

  1. grep -n "Dumping data" enwiki-latest-redirect.sql

Questo restituirà il numero di riga che separa la creazione e i dati delle parti della tabella del file. Che siano 46.

  1. tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql

Il numero che otteniamo nell'ultimo comando viene utilizzato come input per tail per ottenere la parte dati del file.

  1. head -46 enwiki-latest-redirect.sql > redirect-creation.sql

Il numero che otteniamo nel primo comando viene utilizzato come input per head per ottenere la parte di creazione della tabella del file.

2) Rimuovi gli indici da redirect-creation.sql

Quello che segue è il CREATE TABLE originale dichiarazione nel 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; 

Quella che segue è la versione desiderata dopo aver rimosso gli indici:

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; 

Modifica il page-creation.sql per rimuovere gli indici come mostrato sopra.

3) Carica i file creati

mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql

4) Crea indici sui campi desiderati dopo aver caricato i dati

create index idx_redirect_rd_from on redirect(rd_from)

Sono in grado di caricare la tabella dei link di categoria in meno di un'ora sul mio Macbook Pro seguendo i passaggi precedenti.