1) Разделете SQL дъмп файла на две части:създаване и данни
grep -n "Dumping data" enwiki-latest-redirect.sql
Това ще върне номера на реда, разделящ създаването и данните на частите от таблицата на файла. Нека бъде 46.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Числото, което получаваме в последната команда, се използва като вход за tail
за да получите частта с данни от файла.
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, като следвам стъпките по-горе.