อีกตัวเลือกหนึ่งคือการโหลดไฟล์ลงในฐานข้อมูล EG MySQL และ MySQL Workbench
ฐานข้อมูลเป็นตัวเลือกที่สมบูรณ์แบบสำหรับการทำงานกับไฟล์ขนาดใหญ่
หากไฟล์อินพุตของคุณมีเพียงคำที่คั่นด้วยบรรทัดใหม่สิ่งนี้ไม่ควรยาก
หลังจากที่คุณติดตั้งฐานข้อมูลและ MySQL Workbench นี่คือสิ่งที่คุณต้องทำ
ขั้นแรกให้สร้างสคีมา (ซึ่งจะถือว่าคำไม่ยาวเกิน 255 อักขระแม้ว่าคุณจะสามารถแก้ไขได้โดยการเพิ่มค่าอาร์กิวเมนต์) คอลัมน์แรก "idwords" เป็นคีย์หลัก
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
ประการที่สองนำเข้าข้อมูล: EG สิ่งนี้จะนำเข้าคำทั้งหมดลงในตาราง (ขั้นตอนนี้อาจใช้เวลาสักครู่จนเสร็จสมบูรณ์คำแนะนำของฉันจะทำการทดสอบด้วยไฟล์คำเล็ก ๆ ก่อนและเมื่อคุณแน่ใจว่ารูปแบบนั้นเหมือนกัน อันที่ใหญ่กว่า (ตัดทอนตาราง .. IE ลบออกและโหลดชุดข้อมูลแบบเต็ม)
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
ลิงค์นี้อาจช่วยให้การจัดรูปแบบถูกต้องสำหรับการโหลด
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
EG หากคุณต้องการข้ามบรรทัดแรกคุณต้องทำสิ่งต่อไปนี้
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
ในที่สุดบันทึกไฟล์ที่เรียงลำดับ การดำเนินการนี้อาจใช้เวลาสักครู่ขึ้นอยู่กับพีซีของคุณ
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
คุณยังสามารถค้นหาข้อมูลได้ตามต้องการ EG สิ่งนี้จะให้ 50 คำแรกตามลำดับจากน้อยไปหามาก (เริ่มจากคำที่ 0 หรือคำแรก)
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
ขอให้โชคดี
พีท