1) Separe o arquivo de despejo SQL em duas partes:criação e dados
grep -n "Dumping data" enwiki-latest-redirect.sql
Isso retornará o número da linha que separa a criação e os dados das partes da tabela do arquivo. Que seja 46.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
O número que obtemos no último comando é usado como entrada para
tail
para obter a parte de dados do arquivo. head -46 enwiki-latest-redirect.sql > redirect-creation.sql
O número que obtemos no primeiro comando é usado como entrada para
head
para obter a parte de criação da tabela do arquivo. 2) Remova os índices do redirect-creation.sql
O seguinte é o original
CREATE TABLE
declaração no 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;
A seguir está a versão desejada após a remoção dos índices:
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;
Edite o page-creation.sql para remover índices como mostrado acima.
3) Carregue os arquivos criados
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Crie índices nos campos desejados após carregar os dados
create index idx_redirect_rd_from on redirect(rd_from)
Consigo carregar a tabela categorylinks em menos de uma hora no meu Macbook Pro seguindo as etapas acima.