Czy zamierzasz zindeksować te teksty. Jak duże jest obciążenie odczytu tych tekstów? Wstawić ładunek?
Możesz skorzystać z kompresji danych InnoDB - przejrzysty i nowoczesny sposób. Zobacz dokumentację aby uzyskać więcej informacji.
Jeśli masz naprawdę duże teksty (powiedzmy, że każdy tekst ma ponad 10 MB), dobrym pomysłem jest nie przechowywać ich w MySQL. Przechowuj skompresowane przez gzip teksty w systemie plików i tylko wskaźniki i meta w mysql. W przyszłości możesz w łatwy sposób rozbudować swój magazyn i przenieść go m.in. DFS.
Aktualizacja: kolejny plus przechowywania tekstów poza Mysql:DB pozostaje mały i szybki. Minus:wysokie prawdopodobieństwo niespójności danych.
Aktualizacja 2: jeśli masz dużo zasobów programistycznych, spójrz na projekty takie jak ten: http://code.google.com/p/mysql-filesystem-engine/ .
Ostateczna aktualizacja: według twoich informacji możesz po prostu użyć kompresji InnoDB - to to samo, co ZIP. Możesz zacząć od tych parametrów:
CREATE TABLE book_parts
(...)
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
Później będziesz musiał grać z KEY_BLOCK_SIZE
. Zobacz SHOW STATUS LIKE 'COMPRESS_OPS_OK'
i SHOW STATUS LIKE 'COMPRESS_OPS'
. Stosunek tych dwóch parametrów musi być bliski 1,0:Dokumenty
.