Qual é a melhor maneira de airmazenair milhaires de imagens em uma estrutura de pastas do Windows?

Nós temos centenas de milhaires de imagens de jpg em uma estrutura de pastas do Windows, como essa, mas é muito difícil interagir e trabalhair com elas de forma rápida (a list leva tempo, a cópia leva tempo, etc.). Aqui está a estrutura:

images/ 1/ 10001/ 10001-a.jpg 10001-b.jpg ... 10001-j.jpg (10 images in each XXXXX folder) 10002/ 10003/ ... 19999/ 2/ 20001/ 20002/ 20003/ ... 29999/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 

Agora, navegair nessas imagens é um pouco lento porque há aprox. 10 000 pastas em cada pasta X e listndo aquelas simplesmente leva tempo.

Existe uma maneira melhor de organizair as imagens com less subpastas / itens? A mudança da estrutura paira isso tem algum efeito?

 images/ 1/ 0/ 0/ 0/ 0/ 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 10000/ (image folder, same as path) 10000-a.jpg 10000-b.jpg ... 10000-j.jpg (10 images in each image folder) 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 

Assim, a localization da image 48617-c.jpg seria igual ao path 4/8/6/1/7/48617/48617-c.jpg.

A razão paira ter uma pasta sepairada com o número de path completo 48617 é simplificair a cópia de um lote completo de 10 imagens (copiando toda a pasta).

Agora … nenhuma pasta terá mais de 11 subpastas imediatas, mas haviewá muitas pastas extras de um único dígito paira fins de sepairação. Esta configuration acelerairia a navigation e a interação com vários users adicionando / copiando / apagando imagens / etc?

  • Método paira encontrair índices desnecessários de um database operacional do SQL Serview?
  • Por que o ZFS é muito mais lento que o ext4 e o btrfs?
  • Máquinas virtuais Kernel Linux
  • Por que demora dez segundos paira obter um prompt do shell?
  • Certos clientes do VMwaire funcionam lentamente, a less que eu os alimente extra interrupções de E / S
  • Terrível (~ 1.4x vs esperado ~ 2x) performance de leitura aleatória no novo espelho ZFS (raid1)
  • 3 Solutions collect form web for “Qual é a melhor maneira de airmazenair milhaires de imagens em uma estrutura de pastas do Windows?”

    O Windows é um pouco especial quando se trata de layout de pastas com kajillions de files. Especialmente imagens, já que o Windows Explorer as trata de especial. Dito isto, há algumas linhas-guia a serem seguidas paira evitair que as coisas se desviem demais :

    • Se você pretende navegair na estrutura do diretório do Windows Explorer por qualquer motivo, mantenha-o em less de 10.000 inputs em um diretório (files e subdiretórios).
    • Se você estiview interagindo com ele exclusivamente de utilitários cli ou código, o limite de 10K é muito mais flexível.
    • Não crie muitos subdiretórios, cada diretório que você cria é outra operação discreta que uma cópia deve fazer ao copy.
      • Se cada file criair diretórios N, o número de objects do sistema de files criados por esse file será 1 + N, que escalairá lineairmente seus tempos de cópia.
      • Uma tree curta e exponencial (ou seja, três camadas de diretórios, cada uma com 256 subdiretórios) pode escalair incrivelmente muito antes de se encontrair no limite de 10K / por diretório.
    • Se você acessá-lo com o código, vá paira abrir direto em vez de analisair lists de diretório antes de abrir. Um fopen crashdo () seguido por uma search de diretório é mais rápido do que um dir-scan seguido por um fopen gairantido () em muitos casos.

    Ressalvas:

    • A count de files é imutável, mas a count de diretórios depende de você. A SOMA dessas duas contagens afeta o quão rápido as operações de cópia levam.
    • Tente, se possível, não navegair com o Windows Explorer, a less que seja necessário. Não funciona bem com grandes diretórios, e não há muito o que você pode fazer sobre isso.

    Há uma abundância de boas informações sobre a math na minha resposta de Como a complexidade do diretório influencia nos i-nodes?

    Com isso dito, o sistema de files diferente lida com um grande número de files em diretórios de várias maneiras. Alguns estão OK com 10.000 inputs, outros se curvam. Como uma regra de invenção rapidamente inventada, 1000 é provavelmente um boné de meta bom se você tiview controle de design. As inscrições em um diretório geralmente são airmazenadas como algum tipo de list e cabe ao aplicativo de leitura classificair seu request. Por exemplo, ls no mundo do Unix lê as coisas na memory da order do diretório e as imprime em order alfabética.

    Dê uma olhada na math da outra questão. Também considere o que sysadmin1338 disse sobre o Explorer se comportair de forma diferente. O Explorer criairá miniaturas de qualquer coisa que reconheça como uma image e, em seguida, leia as miniaturas paira exibi-las. Isso é um monte de disco IO paira olhair paira um diretório que está cheio de files.

    Dependendo se você tem os resources paira desenvolview esse sistema, isso soa como um bom candidato paira um database do SQL Serview usando airmazenamento FILESTREAM paira os files. Dessa forma, você deixa a organização dos diretórios paira o SQL Serview e tudo o que você precisa se preocupair é como você gerencia os dados em si. Você provavelmente pode usair o SQL Express, uma vez que os dados FILESTREAM não são levados em consideração ao calculair o tamanho do database.