Arquivos de dados abordagem de armazenamento em servidores web

votos
0

Meu aplicativo armazena informações web produto em arquivos XML no disco, no servidor web. Isto é perfeitamente bem quando se trata de alguns produtos, no entanto eu tenho minhas preocupações de que grandes quantidades de arquivos pode causar problemas.

Então, digamos que eu vou ter 20.000 produtos, que significaria ter 20.000 arquivos XML dentro de um diretório. Eu não estou familiarizado com a infra-estrutura de armazenamento em disco do servidor web, que tantos arquivos causar problemas como queda significativa na velocidade de acesso e / ou a fragmentação do disco excessiva? Fazer servidores de armazenamento mesmo fragmento, é a fragmentação de uma questão que eu preciso para se preocupar em servidores?

Eu preferiria manter meu arquivos XML individuais porque eu posso acessá-los diretamente como conteúdo estático via http me dando velocidade de acesso muito mais rápido e cache. A alternativa seria a criação de um grande arquivo de dados binário e armazenar cada xml dados do produto dentro desse arquivo em modo binário, em seguida, usar um script do lado do servidor para extrair os xmls a partir desse arquivo de dados grande. (Sim, eu sei que eu posso simplesmente guardá-las em um banco de dados, mas que não é o caso, eu estou interessado.)

Publicado 27/08/2009 em 00:04
fonte usuário
Em outras línguas...                            


5 respostas

votos
0

Um banco de dados é o caminho a percorrer. Se você não quer dependências externas você poderia ir com SQLite. É construído em php e ativado por padrão nas versões atuais do php.

O armazenamento de dados subjacente é tipicamente um único arquivo.

Respondeu 28/08/2009 em 17:51
fonte usuário

votos
0

se você chegar a um ponto onde você tem que muitos produtos, então eu recomendo usar um sistema de banco de dados de algum tipo. Se a sua principal preocupação é cache, há uma abundância de métodos de caching lá fora, que irá fornecer o desempenho estático, como para sistemas de banco de dados orientado. Além disso, se sua empresa está em um ponto para onde ele tem 20.000 produtos para gerenciar, depois gerir uma tabela de banco de dados é a menor das suas preocupações;)

Respondeu 27/08/2009 em 00:44
fonte usuário

votos
0

Boa idéia para limitar o número de arquivos ou diretórios em qualquer diretório particular.

Uma estratégia é, se você tem identificadores exclusivos para cada arquivo XML, criar uma estrutura de pastas que usa esse identificador.

por exemplo

produto 000123 é armazenado em:

Produtos \ 00 \ 01 \ 23 \ product.xml

e do produto 019384 é armazenado em:

Produtos \ 01 \ 93 \ 84 \ product.xml

Isso vai reduzir o número de itens em qualquer pasta específica a 100, o que é bastante razoável.

Espero que ajude.

Respondeu 27/08/2009 em 00:33
fonte usuário

votos
0

Dê uma olhada no sistema de banco de dados Berkeley DB XML. Você pode manter o seu XML nativo ao ganhar todos os benefícios ácido de um DB.

Tenha em mente que Disk IO vai ser entre os mais caros das operações.

Link: http://www.oracle.com/database/berkeley-db/xml/index.html

Respondeu 27/08/2009 em 00:14
fonte usuário

votos
-1

Qual é o tamanho dos arquivos? Quantas batidas / segundo? Qual é a popularidade relativa de cada arquivo? Quantos discos? Quanta memória RAM? Você está usando RAID?

Basicamente - depende.

Respondeu 27/08/2009 em 00:13
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more