Ska du indexera dessa texter. Hur stor är läsbelastningen på dessa texter? Infoga last?
Du kan använda InnoDB datakomprimering - transparent och modernt sätt. Se dokument för mer information.
Om du har riktigt stora texter (säg att varje text är över 10 MB), är det bra att inte lagra dem i Mysql. Lagra komprimerade av gzip-texter i filsystemet och endast pekare och meta i mysql. Du kan enkelt utöka ditt lager i framtiden och flytta det till t.ex. DFS.
Uppdatering: ytterligare ett plus med att lagra texter utanför Mysql:DB förblir liten och snabb. Minus:hög sannolikhet för datainkonsekvens.
Uppdatering 2: om du har många programmeringsresurser, snälla, ta en titt på projekt som detta: http://code.google.com/p/mysql-filesystem-engine/ .
Slutlig uppdatering: enligt din information kan du bara använda InnoDB-komprimering - det är samma sak som ZIP. Du kan börja med dessa parametrar:
CREATE TABLE book_parts
(...)
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
Senare måste du spela med KEY_BLOCK_SIZE
. Se SHOW STATUS LIKE 'COMPRESS_OPS_OK'
och SHOW STATUS LIKE 'COMPRESS_OPS'
. Förhållandet mellan dessa två parametrar måste vara nära 1.0:Dokument
.