sql >> Base de Datos >  >> RDS >> Mysql

cargando enwiki-latest-categorylinks.sql en mysql

1) Separe el archivo de volcado de SQL en dos partes:creación y datos

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

Esto devolverá el número de línea que separa la creación y los datos de las partes de la tabla del archivo. Que sean 46.

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

El número que obtenemos en el último comando se usa como entrada para tail para obtener la parte de datos del archivo.

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

El número que obtenemos en el primer comando se usa como entrada para head para obtener la parte de creación de la tabla del archivo.

2) Eliminar índices de redirect-creation.sql

El siguiente es el CREATE TABLE original declaración en el basurero:

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; 

La siguiente es la versión deseada después de eliminar los í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 page-creation.sql para eliminar índices como se muestra arriba.

3) Cargar los archivos creados

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

4) Cree índices en los campos que desee después de cargar los datos

create index idx_redirect_rd_from on redirect(rd_from)

Puedo cargar la tabla de enlaces de categoría en menos de una hora en mi Macbook Pro siguiendo los pasos anteriores.