La compression du texte avant de les stocker dans la base de données

J'ai besoin de stocker une très grande quantité de texte dans la base de données mysql. Il sera des millions d'enregistrements dont le champ type LONGTEXT et de la taille de base de données va être énorme.

Donc, je tiens à me demander, si il existe un moyen sûr pour compresser le texte avant de le ranger dans un champ de TEXTE pour économiser de l'espace, avec la possibilité de l'extraire de retour si besoin?

Quelque chose comme:

$archived_text = compress_text($huge_text);
//saving $archived_text to database here
//...

//...
//getting compressed text from database
$archived_text = get_text_from_db();
$huge_text = uncompress_text($archived_text);

Est-il un moyen de le faire avec php ou mysql? Tous les textes sont codés en utf-8.

Mise à JOUR

Ma demande est un grand de la littérature site web où les utilisateurs peuvent ajouter leurs textes. Voici le tableau que j'ai:

CREATE TABLE `book_parts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `book_id` int(11) NOT NULL,
  `title` varchar(200) DEFAULT NULL,
  `content` longtext,
  `order_num` int(11) DEFAULT NULL,
  `views` int(10) unsigned DEFAULT '0',
  `add_date` datetime DEFAULT NULL,
  `is_public` tinyint(3) unsigned NOT NULL DEFAULT '1',
  `published_as_draft` tinyint(3) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `key_order_num` (`order_num`),
  KEY `add_date` (`add_date`),
  KEY `key_book_id` (`book_id`,`is_public`,`order_num`),
  CONSTRAINT FOREIGN KEY (`book_id`) REFERENCES `books` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

Actuellement elle dispose de près de 800 enregistrements et des poids de 4 GO, 99% des requêtes SELECT. J'ai toutes les raisons de penser que le nombre augmente de manière schématique. Je ne voudrais pas d'enregistrer les textes dans les fichiers car il est assez lourd logique et mon site a très peu de résultats.

Si vous êtes à stocker des données binaires, utilisez un champ BLOB, pas de texte.
Vous pouvez vouloir reconsidérer votre droit de veto sur la base de fichiers de stockage. Je ne suis pas sûr de ce que vous entendez à propos de "lourd logique", mais je ne vois pas comment stocker les textes dans la base de données sera automatiquement mieux que des fichiers pour un site avec beaucoup de circulation.

OriginalL'auteur Silver Light | 2011-11-22