1) Separera SQL-dumpfilen i två delar:skapande och data
grep -n "Dumping data" enwiki-latest-redirect.sql
Detta kommer att returnera radnumret som skiljer skapandet och data för tabelldelarna av filen. Låt det vara 46.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Siffran vi får i det sista kommandot används som indata till tail
för att hämta datadelen av filen.
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Siffran vi får i det första kommandot används som indata till head
för att få tabellskapande delen av filen.
2) Ta bort index från redirect-creation.sql
Följande är den ursprungliga CREATE TABLE
uttalande i dumpningen:
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;
Följande är den önskade versionen efter att du tagit bort 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;
Redigera page-creation.sql för att ta bort index som visas ovan.
3) Ladda de skapade filerna
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Skapa index på fält du vill ha efter att ha laddat data
create index idx_redirect_rd_from on redirect(rd_from)
Jag kan ladda kategorilänkstabellen på mindre än en timme på min Macbook Pro genom att följa stegen ovan.