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

Comprimere il testo prima di memorizzarlo nel database

Indicizzerai questi testi. Quanto è grande il carico di lettura su questi testi? Inserire il carico?

Puoi utilizzare la compressione dei dati InnoDB in modo trasparente e moderno. Vedi documenti per maggiori informazioni.

Se hai testi davvero enormi (diciamo, ogni testo è superiore a 10 MB), una buona idea è non archiviarli in Mysql. Archivia testi compressi da gzip nel file system e solo puntatori e meta in mysql. Puoi facilmente espandere il tuo spazio di archiviazione in futuro e spostarlo ad es. DFS.

Aggiornamento: un altro vantaggio della memorizzazione di testi al di fuori di Mysql:DB rimane piccolo e veloce. Meno:alta probabilità di incoerenza dei dati.

Aggiornamento 2: se hai molte risorse di programmazione, per favore, dai un'occhiata a progetti come questo: http://code.google.com/p/mysql-filesystem-engine/ .

Aggiornamento finale: secondo le tue informazioni, puoi semplicemente usare la compressione InnoDB:è la stessa di ZIP. Puoi iniziare con questi parametri:

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

Successivamente dovrai giocare con KEY_BLOCK_SIZE . Vedi SHOW STATUS LIKE 'COMPRESS_OPS_OK' e SHOW STATUS LIKE 'COMPRESS_OPS' . Il rapporto di questi due parametri deve essere vicino a 1,0:Documenti .