sql >> Base de Datos >  >> RDS >> Mysql

Comprimir texto antes de almacenarlo en la base de datos

Vas a indexar estos textos. ¿Qué tan grande es la carga de lectura en estos textos? ¿Insertar carga?

Puede usar la compresión de datos InnoDB, de manera transparente y moderna. Consulte docs para más información.

Si tiene textos realmente grandes (por ejemplo, cada texto tiene más de 10 MB), una buena idea es no almacenarlos en Mysql. Almacene textos comprimidos por gzip en el sistema de archivos y solo punteros y metadatos en mysql. Puede expandir fácilmente su almacenamiento en el futuro y moverlo a, p. DFS.

Actualización: otra ventaja de almacenar textos fuera de Mysql:la base de datos se mantiene pequeña y rápida. Menos:alta probabilidad de inconsistencia de datos.

Actualización 2: si tiene muchos recursos de programación, por favor, eche un vistazo a proyectos como este: http://code.google.com/p/mysql-filesystem-engine/ .

Actualización final: de acuerdo con su información, puede usar la compresión InnoDB, es lo mismo que ZIP. Puede comenzar con estos parámetros:

CREATE TABLE book_parts
 (...) 
 ENGINE=InnoDB
 ROW_FORMAT=COMPRESSED 
 KEY_BLOCK_SIZE=8;

Más tarde deberás jugar con KEY_BLOCK_SIZE . Ver SHOW STATUS LIKE 'COMPRESS_OPS_OK' y SHOW STATUS LIKE 'COMPRESS_OPS' . La proporción de estos dos parámetros debe estar cerca de 1.0:Documentos .