Até o PostgreSQL está preocupado, digite
text
está fora de questão. É mais lento, usa mais espaço e é mais propenso a erros do que bytea
para o propósito. Existem basicamente 3 abordagens:
-
Use o tipobytea
(basicamente o equivalente pg do tipo blob SQL).
-
Use "objetos grandes ".
-
Armazenar blobs como arquivos no sistema de arquivos e armazene apenas o nome do arquivo no banco de dados.
Cada um tem suas próprias vantagens e desvantagens.
1. é bastante simples de manusear, mas precisa de mais espaço em disco. É necessária alguma decodificação e codificação, o que o torna também lento. Os backups crescem rapidamente em tamanho!
2. é um pouco estranho de manusear, mas você tem sua própria infraestrutura para manipular os blobs - se precisar disso. E você pode fazer backups separados com mais facilidade.
3. é de longe a maneira mais rápida e usa o menor espaço em disco. Mas não fornece a integridade referencial que você obtém quando armazena dentro do banco de dados.
Eu tenho várias implementações como essa para arquivos de imagem:armazene uma pequena miniatura em um campo bytea para integridade referencial e referência rápida. Armazene a imagem original como arquivo no sistema de arquivos. Claro, você precisa pensar um pouco sobre quando e como excluir arquivos desatualizados, como fazer backup dos arquivos externos e tal.