Ho alcune attività automatizzate da eseguire utilizzando determinati tipi di registri generati sul server alla fine di ogni giorno. I file di registro contengono l'identificativo macchina specifico "MAC" che deve essere riscritto in un altro file di testo convertito nel nome della macchina.
FILE DI DATI LOG DI SAMEPE OGNI CONTENUTO ~ 2 MILIONI DI LINEE IN FORMATO BINARIO
-----------|--------|-----------------|----|----------|---------
DATE |TIME |MAC_ADDRESS |PORT|IP_ADDRESS|BLA BLAA
-----------|--------|-----------------|----|----------|----------
19-01-2014 |18:16:42|A3:43:31:11:02:1A|22 |
19-01-2014 |18:16:43|A3:43:31:11:12:1A|22 |
19-01-2014 |18:16:43|A3:43:31:11:12:1A|21 |
19-01-2014 |18:16:44|A3:43:31:11:12:22|80 |
19-01-2014 |18:16:44|A3:43:31:11:12:00|443 |
19-01-2014 |18:16:45|A3:43:31:AA:12:AA|5800|
19-01-2014 |18:16:46|A3:43:31:AA:30:1A|21 |
I record di cui sopra li ho bisogno per essere convertiti in formato testo, l'indirizzo MAC sostituito con il nome della macchina dal mio database dei nomi macchina. Il mio programma attuale legge ogni riga dal file sopra e trova il nome della macchina dal nome della macchina db che corrisponde al MAC_ADDRESS dei dati letti e li scrive in un file di testo.
Questa è la mia domanda.
Il mio programma è scritto in C
lingua. Ho due opzioni per gestire il DB dei nomi delle macchine, in primo luogo è avere un db sqlite oppure la seconda opzione è avere un file binario piatto. Considero la performance. Temo, utilizzando db per questo sarebbe meno prestazioni rispetto al file in quanto richiede tempi per la connessione / disconnessione sull'elaborazione di ogni riga di registro. anche se, non sono ancora chiaro sul mio punto.
Considerare il numero di record e suggerirmi se è meglio usare file flat per sqlite db per memorizzare i record dei nomi delle macchine.