sql >> Database teknologi >  >> RDS >> Mysql

Komprimering af tekst før lagring i databasen

Skal du indeksere disse tekster. Hvor stor er læsebelastningen på disse tekster? Indsætte belastning?

Du kan bruge InnoDB datakomprimering - gennemsigtig og moderne måde. Se dokumenter for mere info.

Hvis du har virkelig store tekster (f.eks. hver tekst er over 10 MB), er det en god idé ikke at gemme dem i Mysql. Gem komprimeret af gzip-tekster i filsystemet og kun pointere og meta i mysql. Du kan nemt udvide dit lager fremover og flytte det til f.eks. DFS.

Opdatering: endnu et plus ved at gemme tekster uden for Mysql:DB forbliver lille og hurtig. Minus:høj sandsynlighed for datainkonsistens.

Opdatering 2: Hvis du har mange programmeringsressourcer, så tag et kig på projekter som dette: http://code.google.com/p/mysql-filesystem-engine/ .

Sidste opdatering: i henhold til dine oplysninger kan du bare bruge InnoDB-komprimering - det er det samme som ZIP. Du kan starte med disse parametre:

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

Senere bliver du nødt til at spille med KEY_BLOCK_SIZE . Se SHOW STATUS LIKE 'COMPRESS_OPS_OK' og SHOW STATUS LIKE 'COMPRESS_OPS' . Forholdet mellem disse to parametre skal være tæt på 1.0:Dokumenter .



  1. Konverter fra dato til epoke-Oracle

  2. indlæser enwiki-latest-categorylinks.sql til mysql

  3. Vælg fra rullemenuen og genindlæs siden

  4. Metoder til indstilling af NLS-parametre og deres prioriteter (Oracle-database)