Compactação de campos LONGTEXT/BLOB no MySQL.
Dica rápida para economizar espaço em disco em campos LONGTEXT/BLOB do MySQL, existem duas funções que fazem a compactação e descompactação de campos diretamente na sua query: COMPRESS e UNCOMPRESS.
Para inserir um registro compactando o campo “texto” utilize a função COMPRESS conforme o exemplo abaixo:
INSERT INTO tabela (id, chamada, texto) VALUES ('215', 'Artigo X', COMPRESS('TEXTO LONGO...'));
Depois para carregar os dados descompactados basta fazer o seguinte:
SELECT id, chamado, UNCOMPRESS(texto) AS texto FROM tabela WHERE id = '215';
Ambas as funções podem ser usadas no UPDATE. O exemplo abaixo descompacta o conteúdo do campo “texto” definitivamente.
UPDATE chamado SET texto = UNCOMPRESS(texto) WHERE id = '215';
Um conselho, faça a experiência em uma área de testes e avalie a performance do seu sistema com essa mudança. Tenho certeza que isso irá reduzir drasticamente o espaço em disco utilizado pela seu banco de dados, mas por outro lado você deve perder um pouco de performance sobrecarregando o processador. Verifique os recursos disponíveis em seu servidor para então decidir se é uma boa solução para o seu caso.
Importante!
Se você grava arquivos já compactados neste campo, como imagens no formato JPG, aconselho não utilizar essa técnica, pois a economia de espaço em disco não será considerável.
abs.
Juliano
Você pode seguir todas as respostas através do feed RSS 2.0. Você pode deixar uma resposta, ou trackback do seu site.