Một tùy chọn khác là tải tệp vào Cơ sở dữ liệu. Bàn làm việc của MySQL và MySQL.
Cơ sở dữ liệu là ứng cử viên hoàn hảo để làm việc với các tệp lớn
Nếu tệp đầu vào của bạn chỉ chứa các từ được phân tách bằng một dòng mới thì điều này không nên khó.
Sau khi bạn đã cài đặt cơ sở dữ liệu và MySQL Workbench, đây là việc bạn cần làm.
Trước tiên hãy tạo lược đồ (điều này giả sử các từ sẽ không dài hơn 255 ký tự mặc dù bạn có thể thay đổi điều này bằng cách tăng giá trị đối số). Cột đầu tiên "idwords" là khóa chính.
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
Nhập dữ liệu thứ hai: EG Điều này sẽ nhập tất cả các từ vào bảng (bước này có thể mất một lúc để hoàn thành. Lời khuyên của tôi là trước tiên hãy chạy thử nghiệm với một tệp từ nhỏ và một khi bạn chắc chắn định dạng giống như cái lớn hơn (cắt bớt bảng .. IE Xóa nó ra và tải bộ dữ liệu đầy đủ).
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
Liên kết này có thể giúp có được định dạng phù hợp với tải.
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
EG Nếu bạn cần bỏ qua dòng đầu tiên bạn sẽ làm như sau.
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
Cuối cùng Lưu tập tin đã sắp xếp. Điều này có thể mất một lúc cũng tùy thuộc vào máy tính của bạn.
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
Bạn cũng có thể tìm kiếm dữ liệu theo ý muốn. EG Điều này sẽ cung cấp cho bạn 50 từ đầu tiên theo thứ tự tăng dần (bắt đầu từ 0 hoặc từ đầu tiên).
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
Chúc may mắn
Pete