1) Separare il file di dump SQL in due parti:creazione e dati
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.
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.
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.