Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Komprimieren von Text vor dem Speichern in der Datenbank

Werden Sie diese Texte indizieren? Wie groß ist die Leselast bei diesen Texten? Ladung einfügen?

Sie können die InnoDB-Datenkomprimierung verwenden - transparent und modern. Siehe docs für weitere Informationen.

Wenn Sie sehr große Texte haben (sagen wir, jeder Text ist größer als 10 MB), dann ist es eine gute Idee, sie nicht in Mysql zu speichern. Speichern Sie per gzip komprimierte Texte im Dateisystem und nur Zeiger und Meta in mysql. Sie können Ihren Speicher in Zukunft problemlos erweitern und z. DFS.

Aktualisierung: Ein weiteres Plus beim Speichern von Texten außerhalb von Mysql:DB bleibt klein und schnell. Minus:hohe Wahrscheinlichkeit einer Dateninkonsistenz.

Aktualisierung 2: Wenn Sie viele Programmierressourcen haben, werfen Sie bitte einen Blick auf Projekte wie dieses: http://code.google.com/p/mysql-filesystem-engine/ .

Letztes Update: Ihren Angaben zufolge können Sie einfach die InnoDB-Komprimierung verwenden - es ist dasselbe wie ZIP. Sie können mit diesen Parametern beginnen:

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

Später müssen Sie mit KEY_BLOCK_SIZE spielen . Siehe SHOW STATUS LIKE 'COMPRESS_OPS_OK' und SHOW STATUS LIKE 'COMPRESS_OPS' . Das Verhältnis dieser beiden Parameter muss nahe bei 1,0 liegen:Dokumente .