sql >> Database >  >> RDS >> Mysql

Tekst comprimeren voordat deze in de database wordt opgeslagen

Ga je deze teksten indexeren. Hoe groot is de leesbelasting op deze teksten? Lading invoegen?

U kunt InnoDB-gegevenscompressie gebruiken - transparante en moderne manier. Zie docs voor meer info.

Als je echt enorme teksten hebt (zeg, elke tekst is groter dan 10 MB), dan is het een goed idee om ze niet op te slaan in Mysql. Bewaar gecomprimeerde door gzip-teksten in het bestandssysteem en alleen pointers en meta in mysql. U kunt uw opslagruimte in de toekomst eenvoudig uitbreiden en verplaatsen naar b.v. DFS.

Bijwerken: nog een pluspunt van het opslaan van teksten buiten Mysql:DB blijft klein en snel. Minpuntje:grote kans op inconsistentie in de gegevens.

Update 2: als je veel programmeerbronnen hebt, kijk dan eens naar projecten zoals deze: http://code.google.com/p/mysql-filesystem-engine/ .

Laatste update: volgens uw informatie kunt u gewoon InnoDB-compressie gebruiken - het is hetzelfde als ZIP. U kunt beginnen met deze parameters:

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

Later moet je spelen met KEY_BLOCK_SIZE . Zie SHOW STATUS LIKE 'COMPRESS_OPS_OK' en SHOW STATUS LIKE 'COMPRESS_OPS' . De verhouding tussen deze twee parameters moet dicht bij 1,0 liggen:Documenten .



  1. Java in Oracle Database Voorbeeld

  2. MySQL krijgt alle betrokken rijen voor meerdere instructies in één query

  3. Aggregatie van Oracle-tekenreeksen

  4. SQL Server kapt varchar's stil af in opgeslagen procedures