Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Compactando texto antes de armazená-lo no banco de dados


Você vai indexar esses textos. Quão grande é a carga de leitura nestes textos? Inserir carga?

Você pode usar a compactação de dados InnoDB - de maneira transparente e moderna. Consulte os documentos para mais informações.

Se você tem textos muito grandes (digamos, cada texto tem mais de 10 MB), então uma boa ideia é não armazená-los no Mysql. Armazenar compactado por textos gzip no sistema de arquivos e apenas ponteiros e meta no mysql. Você pode expandir facilmente seu armazenamento no futuro e movê-lo para, por exemplo, DFS.

Atualização: outra vantagem de armazenar textos fora do Mysql:DB permanece pequeno e rápido. Menos:alta probabilidade de inconsistência de dados.

Atualização 2: se você tiver muitos recursos de programação, dê uma olhada em projetos como este: http://code.google.com/p/mysql-filesystem-engine/ .

Atualização final: de acordo com suas informações, você pode simplesmente usar a compactação InnoDB - é o mesmo que ZIP. Você pode começar com estes parâmetros:
CREATE TABLE book_parts
 (...) 
 ENGINE=InnoDB
 ROW_FORMAT=COMPRESSED 
 KEY_BLOCK_SIZE=8;

Mais tarde, você precisará jogar com KEY_BLOCK_SIZE . Consulte SHOW STATUS LIKE 'COMPRESS_OPS_OK' e SHOW STATUS LIKE 'COMPRESS_OPS' . A proporção desses dois parâmetros deve ser próxima de 1,0:Documentos .