1) Tách tệp kết xuất SQL thành hai phần:tạo và dữ liệu
-
grep -n "Dumping data" enwiki-latest-redirect.sql
Thao tác này sẽ trả về số dòng phân tách việc tạo và dữ liệu của các phần bảng của tệp. Hãy để nó là 46.
-
tail -n +46 enwiki-latest-redirect.sql > redirect -data.sql
Số chúng ta nhận được trong lệnh cuối cùng được sử dụng làm đầu vào cho tail
để lấy phần dữ liệu của tệp.
-
head -46 enwiki-latest-redirect.sql > redirect-creation.sql
Số chúng ta nhận được trong lệnh đầu tiên được sử dụng làm đầu vào cho head
để lấy phần tạo bảng của tệp.
2) Xóa chỉ mục khỏi redirect-create.sql
Sau đây là CREATE TABLE
gốc tuyên bố trong kết xuất:
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;
Sau đây là phiên bản mong muốn sau khi xóa các chỉ mục:
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;
Chỉnh sửa page-create.sql để xóa các chỉ mục như được hiển thị ở trên.
3) Tải các tệp đã tạo
mysql -u root -p wikipedia < redirect-creation.sql
mysql -u root -p wikipedia < redirect-data.sql
4) Tạo chỉ mục trên các trường bạn muốn sau khi tải dữ liệu
create index idx_redirect_rd_from on redirect(rd_from)
Tôi có thể tải bảng liên kết danh mục trong vòng chưa đầy một giờ trên Macbook Pro của mình bằng cách làm theo các bước ở trên.