Não há uma maneira fácil de responder à pergunta, mas veja algumas coisas como:
- / usr / share / lib / terminfo /...
- autores do CPAN / id /...
Em ambos os casos, com muito menos de um milhão de entradas, os projetistas dividem os diretórios em vários níveis para acelerar o acesso.
Se você tiver um milhão de entradas e o sistema de arquivos não tiver nenhuma estrutura de busca incorporada no código de manipulação de diretório, o acesso a um arquivo exigirá que o / s leia cerca de metade do nome + entradas do número inode no diretório. diretório para cada arquivo. Mesmo que esteja tudo no buffer pool, isso se torna uma carga de trabalho significativa.
Se você introduzir um sistema de nomes em camadas - os dois exemplos baseiam-se nos primeiros caracteres do nome:
terminfo/lib/a/ansi
id/J/JO/JOHNL
O CPAN tem dois níveis; para seus 1 milhão de arquivos, provavelmente usaria dois níveis também.
Existe alguma sobrecarga em ter o (s) nível (s) extra (s) de diretório.
Esses esquemas assumem que você sabe o nome que procura - pesquisar todos os nomes é uma proposta diferente.