Sei affetto da un problema comune tra gli ingegneri: quello dell'overottimizzazione in un frame. I due limiti classici del calcolo sono ora e spazio. Sono generalmente contrari; non puoi conservarne uno senza "spenderne" un altro. Il bug Y2K era in effetti un esempio di questo. I vincoli di spazio hanno reso i programmatori "salvano" due cifre nell'anno, aggiungendo "19" di fronte all'anno sono un calcolo (alias tempo). Allo stesso modo, stai suggerendo di risparmiare spazio comprimendo il file, consumando tempo di calcolo per risparmiare spazio sul disco.
A volte questo è valido. In effetti, una quantità significativa di TCP / IP è già compressa in modo trasparente con gzip in transito. Il tempo trascorso comprimendo & la decompressione è trascurabile rispetto alle risorse di rete richieste per trasferire un documento HTML non compresso.
Nel tuo caso, non lo è, per i seguenti motivi:
L'archiviazione dei dati è economica rispetto al calcolo;
Pensa al tuo computer oggi rispetto al tuo primo computer. Il mio primo computer (che ho acquistato da solo) era un processore da 120Mhz, con 16MB di RAM e un'unità da 1,2 Gb. Il mio attuale computer (un po 'invecchiato) ha una CPU da 3.6 Ghz, 32 GB di RAM e circa 16 TB di spazio di archiviazione. La CPU è 30 volte più veloce, ma la RAM è 2000x più grande (per non parlare di waaaay più veloce) e lo spazio di archiviazione è maggiore di 12500x. Gli attacchi Rainbow "decrittografia" sono un esempio di sfruttamento dello spazio per compensare i nostri difetti computazionali. Abbiamo ottenuto molto più spazio di quanto abbiamo tempo.
Secondo e più pratico:
Se comprimi il testo in situ, perdi la capacità di cercarlo. A seconda dell'algoritmo di compressione e dei dati circostanti, la stringa "WKRP in Cincinnati" potrebbe essere compressa in un diverso set di caratteri, e la stringa simile "WKRP / Cincinnati" sarebbe quasi certamente diversa in qualsiasi cypher. Per cercare nel tuo database compresso, l'utente dovrebbe decomprimere (o dio non voglia, scaricare) l'intera cosa.