Satu opsi lain adalah memuat file ke dalam Database. EG MySQL dan MySQL Workbench.
Database adalah kandidat yang sempurna untuk bekerja dengan file besar
Jika file input Anda hanya berisi kata-kata yang dipisahkan oleh baris baru, ini tidak akan sulit.
Setelah Anda menginstal database dan MySQL Workbench, inilah yang perlu Anda lakukan.
Pertama buat skema (ini mengasumsikan kata-kata tidak akan lebih dari 255 karakter meskipun Anda dapat mengubah ini dengan meningkatkan nilai argumen). Kolom pertama "idwords" adalah kunci utama.
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
Kedua mengimpor data: EG Ini akan mengimpor semua kata ke dalam tabel (langkah ini mungkin memakan waktu beberapa saat untuk menyelesaikan. Saran saya adalah untuk menjalankan tes dengan file kata-kata kecil terlebih dahulu dan setelah Anda yakin formatnya sama dengan yang lebih besar (memotong tabel .. IE Bersihkan dan muat kumpulan data lengkap).
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
Tautan ini dapat membantu mendapatkan format yang tepat untuk memuat.
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
EG Jika Anda perlu melewati baris pertama Anda akan melakukan hal berikut.
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
Akhirnya Simpan file yang diurutkan. Ini mungkin memakan waktu cukup lama juga tergantung pada komputer Anda.
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
Anda juga dapat mencari data sesuka Anda. EG Ini akan memberi Anda 50 kata pertama dalam urutan menaik (mulai dari 0 atau kata pertama).
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
Semoga beruntung
Pete