Qual è il miglior database per i siti web?
Dipende davvero dalla natura dei dati che volete memorizzare, dalle relazioni tra le entità nei vostri dati, e dal numero di query che verranno eseguite ogni minuto, ora e giorno. Non c'è una pallottola d'argento.
I sistemi di database basati su MySQL non hanno problemi di scalabilità. I database distribuiti come MongoDB, CouchDB e Cassandra non sono molto scalabili o stabili quando si tratta di eseguirli come database primario. Alcuni dei database che possono essere considerati sono menzionati qui sotto.
MySQL: Un database relazionale, che serve bene per applicazioni commerciali/end-user dove c'è una chiara relazione tra diversi tipi di entità (ad esempio clienti e prodotti, utenti e recensioni). Usato nella maggior parte delle aziende di cui avete sentito parlare.
SQLite: "SQLite è una libreria software che implementa un motore di database transazionale SQL autonomo, senza server, a configurazione zero. SQLite è il motore di database più ampiamente distribuito nel mondo". È usato in dispositivi Android, iPhone e iOS, browser (Chrome, Firefox, Safar), PHP e Python, televisori, sistemi multimediali automobilistici ecc. Anche se è ottimo per applicazioni leggere e applicazioni mobili, non è ideale per un sito web che esegue migliaia di transazioni al secondo.
PostgreSQL: Un DB ORDMBS, ACID-compliant e transnazionale. C'è un buon confronto tra MySQL e PostreSQL in MySQL vs PostgreSQL?
MongoDb: Un database di documenti. Memorizza i dati in strutture ricche come mappe di mappe di liste, che contengono interi e dati in virgola mobile. Usato per il ridimensionamento (orizzontale). Inoltre, utilizzato quando si ha un modello di dati più semplice che richiede meno join e ha bisogno di una relativa facilità di sviluppo. MongoDb supporta lo sharding facile, molto più facile di SQL.
Redis: "Redis è un open source, un negozio di strutture dati in-memoria, usato come database, cache e message broker. Supporta strutture di dati come stringhe, hash, liste, insiemi, insiemi ordinati con query di range, bitmap, hyperloglogs e indici geospaziali con query radiali. Redis ha una replica incorporata, scripting Lua, LRU eviction, transazioni e diversi livelli di persistenza su disco, e fornisce alta disponibilità tramite Redis Sentinel e partizionamento automatico con Redis Cluster."
DynamoDb/SimpleDb: Servizi db NoSQL, accessibili tramite web API. È un servizio di database veloce e altamente scalabile. L'ho visto usato principalmente per il caching e per strutture di dati relativamente meno complicate. Ha un costo elevato rispetto ai sistemi DB. C'è una velocità di recupero prevedibile, uno stoccaggio teoricamente illimitato. È ottimo per la memorizzazione delle sessioni utente, per la conservazione dei dati e come strato di caching di qualche tipo.
Dipendendo dalla vostra applicazione, potreste dover usare più di uno di questi. La coppia più comunemente usata è RDBM per la memorizzazione dei dati, e un db NoSQL/strato di caching per la cache
Articoli simili
- Qual è la differenza tra un database tradizionale e un database moderno?
- Qual è la differenza tra uno sviluppatore di database e un amministratore di database?
- Qual è il miglior database online gratuito per Android? È per un'app di gestione e i dati sono strutturati con molte tabelle diverse.
- Come collegare un'app Android e un sito web con lo stesso database