E 'meglio usare MySQL o file per memorizzare i dati?
Domanda
Mi chiedo se è meglio usare MySQL o utilizzare i file per memorizzare i dati? Ciò che è più sicuro, ciò che è più veloce? Sto parlando di PHP e MySQL.
Soluzione
E 'del tutto dipende dalle vostre esigenze e di impostazione.
Per piccole quantità di dati che non richiede l'esecuzione di query complesse, i file sono più veloci. cache del sito sono un esempio.
Per i set di dati più grandi o set con più struttura, un database vi permetterà di interrogare i dati in modi più avanzati.
In termini di sicurezza, i file possono essere protetti (utilizzando le autorizzazioni) e conservati al di fuori della web root. I database possono essere bloccati per determinati host e possono avere utenti con differenti ruoli / permessi.
Altri suggerimenti
Come detto, dipende dai dati, ma anche sulla vostra attuale collo di bottiglia.
Se l'applicazione è in esecuzione su un server che è già a corto di risorse di IO, si potrebbe preferire in ogni caso uno storage di rete di tipo.
Le questioni di sicurezza sono più legati alla messa a punto e le buone pratiche rispetto alla tecnologia che viene utilizzata. Se si scrive i file, è necessario assicurarsi che essi non sono scaricabili. Se si utilizza un database, è necessario prendersi cura di SQL injection e così via ...
Vorrei solo sottolineare che non si è limitato ai file e database relazionali.
È inoltre possibile utilizzare memcached per memorizzare i dati in memoria (ideale per la cache, per esempio). NoSQL database come Redis sono anche un'opzione.
- Database (ad esempio MySQL):
Pro: ricercabile, in grado di gestire dati complessi e strutturati, possono essere ospitati su un sever diversa,
persistente Contro: lento
tipico utilizzo: la memorizzazione dei dati di business - File:
Pro: molto facile da installare, abbastanza veloce,
persistente contro: non adatto per gestire i dati molto complessi, non ricercabili, consumerà host del server IO risorse, non che
veloce uso tipico: i file, i file di cache template log - NoSQL (cioè Redis):
Pro: veloce, può essere configurato su un host remoto,
persistente Contro: non facilmente ricercabile, non adatto per fortemente strutturati dati
uso tipico: hack prestazioni (ricerca) - Memoria:
Pro: il più veloce !, possono essere installati su un host remoto Contro: stessi come NoSQL +
non persistente uso tipico: oggetto di caching
dipende dai dati.
A meno che non è davvero banale, però, si può anche usare MySQL. In realtà non c'è un ovvio svantaggio.
In linea generale, si vuole una sorta di database o archivio di oggetti per memorizzare i dati in quanto fornisce un'interfaccia pulita per recuperare i tuoi dati. Tuttavia, è molto dipendente da dati che si sta tentando di memorizzare.
Se si sta facendo un sito web con i dati modificabili dall'utente, probabilmente si desidera utilizzare MySQL o qualche altro database. Se sono solo parlando digitando su alcuni documenti, il sovraccarico di un database è probabilmente più problemi di quanto ne vale la pena.
Al fine di fornire una risposta migliore, abbiamo bisogno di sapere che tipo di dati si memorizzano e come si desidera accedervi.