
Digamos que eu tenha 250.000 entradas de dicionário divididas em tantos arquivos. Cada arquivo começa com uma linha contendo o headword. Juntos eles têm 2 GB. Qual é a melhor maneira de organizar as informações para que eu possa procurar uma palavra com facilidade e rapidez? Devo criar subdiretórios abc etc? Devo combinar vários arquivos em arquivos maiores?
Responder1
Você não diz muito sobre o que está tentando fazer ou quais são os dados, mas aqui está minha ideia - que pressupõe que todas as palavras são únicas. Você não diz que está preocupado com o uso eficiente do espaço em disco.
Sistema de arquivos Ext4. Armazene cada palavra em um arquivo separado em um grande diretório. Deixe o sistema de arquivos encontrá-los para você - muito fácil para você (basta abrir o arquivo desejado pelo nome) e o sistema de arquivos possui um método eficiente de localizar os arquivos.
Você precisará ter certeza de que seu sistema de arquivos possui inodes livres suficientes - um por arquivo, então você precisará de 250.000 livres: du -i
.
Evite fazer ls
ou outras coisas que precisem enumerar os arquivos (como abri-los em um navegador de arquivos) e o desempenho deverá ser bom.
Responder2
Se for um dicionário como um dicionário python, converta-o para JSON e armazene-o no MongoDB ou em alguma implementação NoSQL e acesse-o no banco de dados