1)SQLダンプファイルを作成とデータの2つの部分に分けます
-
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)
上記の手順に従うことで、MacbookProに1時間以内にcategorylinksテーブルをロードできます。