Storicamente, i database erano costosi e non si vorrebbe mai sprecare le preziose licenze di database sui registri. Tuttavia, oggi i database sono relativamente economici e così anche l'elaborazione. L'utilizzo di un database per i log probabilmente non ti ucciderebbe finanziariamente.
Il vantaggio di un file di registro è che si continua a scrivere fino alla fine. Questa è un'operazione relativamente efficiente rispetto all'uso di un server di database.
Il vantaggio di un database è la possibilità di strutturare i dati del registro in relazioni dati, che possono essere analizzati mediante SQL. Questo può darti delle informazioni dettagliate sul funzionamento del tuo software.
Si potrebbe avere il meglio di entrambi i mondi utilizzando SQLite come database di registro. SQLite è una libreria con un motore SQL collegato al tuo programma. Invece di fopen/fwrite/fclose, si utilizza l'API SQLite per aprire il database, eseguire SQL e chiudere il database. Non esiste un server database perché le operazioni del motore SQLite vengono eseguite nel processo dell'applicazione ... proprio come fopen/fwrite/fclose. Una volta acquisiti i dati in un database SQLite (tutti archiviati in un file semplice), è possibile utilizzare SQL per analizzare i dati del registro. Controlla http://www.squidoo.com/sqlitehammer#module5800826 per un esempio.
-------- EDIT agosto 2010 ------------
Gli sviluppatori di SQLite hanno implementato la registrazione writeahead come di SQLite version 3.7.0. Ciò consente scritture molto più veloci. Controlla this video per maggiori dettagli. Con una scrittura più veloce, SQLite è ancora più utile come database di registrazione.
fonte
2010-06-22 03:00:41
C'è un problema "piccolo" con questo suggerimento: SQLite non supporta l'accesso simultaneo in lettura/scrittura, il che significa che non sarà possibile visualizzare il file di registro in tempo reale .. che è un enorme svantaggio IMHO. Liron –
@Liron Levi - Con la versione 3.7.0 e la registrazione writeahead abilitata, sarà possibile visualizzare il file di registro in tempo reale perché uno scrittore non blocca i lettori. –