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
.