1) Rozdziel plik zrzutu SQL na dwie części:tworzenie i dane
grep -n "Dumping data" enwiki-latest-redirect.sql
Spowoduje to zwrócenie numeru wiersza oddzielającego tworzenie i dane części tabeli pliku. Niech będzie 46.
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Liczba otrzymana w ostatnim poleceniu jest używana jako dane wejściowe do tail
aby pobrać część danych z pliku.
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Liczba otrzymana w pierwszym poleceniu jest używana jako dane wejściowe do head
aby pobrać część pliku dotyczącą tworzenia tabeli.
2) Usuń indeksy z redirect-creation.sql
Poniżej znajduje się oryginalny CREATE TABLE
oświadczenie w śmietniku:
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;
Poniżej znajduje się żądana wersja po usunięciu indeksów:
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;
Edytuj page-creation.sql, aby usunąć indeksy, jak pokazano powyżej.
3) Załaduj utworzone pliki
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Utwórz indeksy w żądanych polach po załadowaniu danych
create index idx_redirect_rd_from on redirect(rd_from)
Mogę załadować tabelę linków do kategorii w mniej niż godzinę na moim Macbooku Pro, wykonując powyższe czynności.