Qual é a melhor prática para o armazenamento de grandes quantidades de texto (em um DB ou como um arquivo?), E que sobre comprimi-lo?

StackOverflow https://stackoverflow.com/questions/504544

Pergunta

Estou construindo uma aplicação web que lida com e-mails internos e outros pequenos-a-meio pedaços de tamanho freqüentes de texto entre os usuários e clientes. Qual é o melhor método para armazenar esses dados? Em um banco de dados (MySQL) ou como milhares de arquivos individuais? E quanto a comprimi-lo (gzcompress do PHP () ou recursos de compressão do MySQL)?

Esta não será uma aplicação pública, de modo que a carga do usuário será mínima (menos de 20 usuários por vez). No entanto, haverá um monte de comunicação vai back-e-vem todos os dias dentro do aplicativo, por isso espero que a quantidade de dados a crescer bastante grande como o tempo passa (é por isso que eu gostaria de comprimi-lo).

Eu gostaria de manter os dados em um banco de dados para facilitar o acesso e portabilidade, mas alguns dos tópicos que eu vi aqui sobre as imagens sugeriram o uso de armazenamento de arquivos. O que você acha?

Obrigado, Seth

Editar para esclarecimentos:. Eu não requer qualquer tipo de busca do texto, que é por que eu iria inclinar-se para comprimi-lo para economizar espaço

Foi útil?

Solução

Para imagens e documentos que já estão em um formato específico (Excel, documentos do Word, arquivos PDF, etc) eu prefiro armazenamento de arquivos. Mas por apenas texto simples eu provavelmente preferir usar um banco de dados. É mais fácil para replicar entre máquinas para failover, você pode fazer pesquisas subseqüência sobre o texto e, embora eu não sei de um algoritmo específico para usar para comprimi-lo, eu acho que um banco de dados seria a melhor maneira de ir. Mas só se você já tem apenas o texto e é somente texto. Qualquer outro formato de documento Eu preferiria usar o armazenamento de arquivos.

E a menos que eu estou faltando algo que eu usaria um CLOB em vez de um BLOB, se é somente texto.

Outras dicas

Uma das principais razões para manter os arquivos em um banco de dados é mantê-lo consistente com o resto dos dados que você está armazenando. Será mais fácil para fazer backups, (re) deploy com conjuntos de dados predefinidos etc. Além disso, é mais fácil garantir a integridade transacional.

Um dos benefícios de armazenar texto como arquivos poderia ser que é mais fácil para servi-los usando um servidor web, se este é o benefício único remanescente de usar arquivos que você poderia olhar em cache os arquivos no servidor web - que vai dar -lhe muito do backup fácil e transações do banco de dados, mas ao mesmo tempo permitir alguma aceleração para HTTP solicitações.

eu teria escolhido para usar um DB. Você descreve um cenário onde você está indo para armazenar uma grande quantidade de mensagens. Você não fornecem muita informação sobre o sistema, mas eu acho que você provavelmente gostaria de classificar, grupo e aplicar várias outras propriedades para as mensagens. Seria muito mais fácil e provavelmente mais rápido para manter a mensagem com seus atributos em um DB em vez de usar o armazenamento de arquivos.

Quando se trata de compressão Não sei qual dos métodos é mais eficaz. Você provavelmente deve tentar ambos antes de escolher.

Eu me pergunto o quão grande é esse "pedaço médio". Se o texto é apenas mensagens escritas (assim menos de 10 KB), em seguida, comprimindo os torna ainda mais pequenos e não haveria grande impacto sobre o crescimento do banco de dados. Ele torna o desenvolvimento e manutenção também muito mais fácil ter tudo disponível com consulta singl e não ter que se o conteúdo do arquivo separadamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top