訪問大詞典

訪問大詞典

假設我有 25 萬個字典條目,分成同樣多的檔案。每個文件都以包含詞條的行開頭。它們合計為 2 GB。排列資訊的最佳方式是什麼,以便我可以輕鬆快速地找到單字?我應該建立子目錄 abc 等嗎?我應該將多個文件合併成更大的文件嗎?

答案1

你沒有過多說明你想要做什麼,或者數據是什麼,但這是我的想法——假設所有單字都是唯一的。您並沒有說您擔心磁碟空間的有效利用。

Ext4 檔案系統。將每個單字儲存在一個大目錄中的單獨檔案中。讓檔案系統為您找到它們 - 對您來說非常容易(只需按名稱開啟您想要的檔案),並且檔案系統有一種有效的方法來查找檔案。

您需要確保您的檔案系統有足夠的可用 inode - 每個檔案一個,因此您需要 250,000 個可用 inode:du -i

避免執行ls必須列舉文件的操作或其他操作(例如在文件瀏覽器中開啟文件),並且效能應該很好。

答案2

如果它是像 python 字典這樣的字典,請將其轉換為 JSON 並將其儲存到 MongoDB 或某些 NoSQL 實作並從資料庫存取它

相關內容