Mysql
 sql >> база данни >  >> RDS >> Mysql

зареждане на enwiki-latest-categorylinks.sql в mysql

1) Разделете SQL дъмп файла на две части:създаване и данни

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

Това ще върне номера на реда, разделящ създаването и данните на частите от таблицата на файла. Нека бъде 46.

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

Числото, което получаваме в последната команда, се използва като вход за tail за да получите частта с данни от файла.

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

Числото, което получаваме в първата команда, се използва като вход за head за да получите частта за създаване на таблица от файла.

2) Премахнете индексите от redirect-creation.sql

Следва оригиналният CREATE TABLE изявление в сметището:

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; 

Следната е желаната версия след премахване на индексите:

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; 

Редактирайте page-creation.sql, за да премахнете индексите, както е показано по-горе.

3) Заредете създадените файлове

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

4) Създайте индекси на полета, които искате, след като заредите данните

create index idx_redirect_rd_from on redirect(rd_from)

Мога да заредя таблицата с връзки към категории за по-малко от час на моя Macbook Pro, като следвам стъпките по-горе.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL JOIN две таблици с AVG

  2. Как да активирате SSL/TLS за MySQL в Ubuntu

  3. Laravel заявки за присъединяване AS

  4. MySQL:Какво се случва с неагрегираните полета при GROUP BY?

  5. Не мога да намеря FULLTEXT индекс, съответстващ на списъка с колони (индексите са зададени)