Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

carregando enwiki-latest-categorylinks.sql no mysql


1) Separe o arquivo de despejo SQL em duas partes:criação e dados
  1. 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.
  1. 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.
  1. 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.