एक अन्य विकल्प फ़ाइल को डेटाबेस में लोड करना है। उदाहरण के लिए MySQL और MySQL कार्यक्षेत्र।
डेटाबेस बड़ी फ़ाइलों के साथ काम करने के लिए एकदम सही उम्मीदवार हैं
यदि आपकी इनपुट फ़ाइल में नई लाइन द्वारा अलग किए गए शब्द हैं तो यह कठिन नहीं होना चाहिए।
डेटाबेस और MySQL कार्यक्षेत्र को स्थापित करने के बाद आपको यही करना होगा।
पहले स्कीमा बनाएं (यह शब्द लंबे समय तक नहीं रहेगा कि 255 अक्षर हालांकि आप तर्क मान बढ़ाकर इसे बदल सकते हैं)। पहला कॉलम "idwords" एक प्राथमिक कुंजी है।
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
दूसरा डेटा आयात करें: ईजी यह सभी शब्दों को तालिका में आयात करेगा (इस चरण को पूरा होने में कुछ समय लग सकता है। मेरी सलाह होगी कि पहले एक छोटे शब्द फ़ाइल के साथ एक परीक्षण चलाएं और एक बार जब आप सुनिश्चित कर लें कि प्रारूप समान है बड़ा एक (तालिका को छोटा करें .. 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
ईजी यदि आप पहली पंक्ति को छोड़ना चाहते हैं, तो आप निम्नलिखित कार्य करेंगे।
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';
आप जैसा चाहें वैसा डाटा सर्च भी कर सकते हैं। ईजी यह आपको आरोही क्रम में पहले 50 शब्द देगा (0 या पहले शब्द से शुरू)।
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
सौभाग्य
पीट