È difficile dare una risposta semplice senza sapere in che modo i 4 primi file sono correlati tra loro, in che modo la logica aziendale combina i dati e se è possibile assumere qualsiasi ipotesi sull'ordinazione dei file. Tuttavia, ecco alcune idee generali per aiutarti a valutare te stesso l'approccio che consideri.
I tuoi dati sono di lunghezza fissa, il che significa facile analisi, confronto e conversione per l'approccio dei file e l'approccio al database.
Il database richiede l'importazione di tutti i dati prima di iniziare l'elaborazione. Ciò significa analizzare e convertire tutti i campi di input di tutti i file. Ciò significa anche creare indici per campi che richiedono una ricerca veloce. Questo potrebbe significare infine un overhead aggiuntivo per la gestione dell'integrità delle transazioni.
Questo overhead può essere ridotto a icona:
-
Se si dispone solo di alcuni indici, il costo della loro creazione dovrebbe in linea di principio essere inferiore rispetto all'ordinamento dei file di testo (poiché l'ordinamento dei file di testo richiede diverse riscritture complete di tutti i dati).
-
Le tabelle di database temporanee possono essere definite come aventi solo i campi rilevanti per la business logic, il promemoria di ogni riga di testo di input inserita in campi di testo di dimensioni fisse di grandi dimensioni. Ciò potrebbe ridurre l'overhead di conversione (ad esempio date, numeri, ...) durante l'importazione al minimo e in linea di principio allo stesso livello della conversione del testo nei file da solo. Ciò ridurrebbe anche le operazioni interne del database durante il recupero delle righe (più campi, più tempo è necessario per creare i dataset interni in memoria).
-
Molti database hanno una funzionalità di caricamento collettivo che consente di disabilitare temporaneamente l'integrità della transazione durante l'importazione, riducendo ulteriormente una delle pesanti attività di caricamento.
I motori di database hanno funzionalità che possono accelerare significativamente l'elaborazione dei dati:
-
L'uso di indici di database può evitare di leggere ripetutamente grandi parti di file solo per individuare alcuni record e aumentare significativamente le prestazioni (eccetto se i file di testo sono ordinati in base allo stesso campo).
-
In generale, un Query Optimizer ottimizza automaticamente le query (che richiederebbe un'analisi manuale accurata senza di essa).
-
Gli algoritmi di caching del database vengono utilizzati per ottimizzare l'accesso (in particolare l'accesso ripetuto).
Conclusione : a meno che i tuoi file di testo non siano ordinati in base ai criteri della logica di raggruppamento e a meno che non sia possibile trovare un algoritmo a passaggio singolo per combinare i dati, ci sono alte probabilità che l'accesso al database abilitare a sovraperformare l'approccio del file di testo grezzo.
Nota importante: la parte più pesante e delicata dell'approccio al database sarà l'importazione (in particolare con la tua macchina precedente). Fortunatamente, è possibile valutare la fattibilità di questo approccio con uno sforzo molto limitato: definire la struttura del database, utilizzare il motore sql con cui si ha familiarità e provare a utilizzare mysqlimport
.