Sono abbastanza nuovo nello sviluppo di software e ogni volta che mi imbatto in piccoli progetti che implicano la memorizzazione di dati (relazionali) mi chiedo sempre se qualcosa come un micro-blog (o qualsiasi altro progetto con pochi utenti che memorizza pochi tipi di dati ) hanno davvero bisogno di RDBMS "grandi" come MySQL / MariaDB, PostgreSQL o anche SQL Server, DB2 o Oracle (ovviamente non ho usato quest'ultimo 3 ma i primi 2 sembrano molto diffusi anche con pochissime applicazioni).
Se osservi la matrice delle caratteristiche di uno di questi pacchetti software, di solito è massiccia e mi travolge un po '. Fondamentalmente voglio creare un database, un gruppo di tabelle, uno o due utenti con diritti specifici per accedervi e basta.
Ma dopo aver consultato la documentazione, troverò cose come "Cascading streaming replication", "Foreign wrapper di dati" o "Viste materializzate con refresh simultaneo" e molto, molto altro e questo mi fa sempre pensare se dovrei davvero leggere su queste cose, modificare il mio file di configurazione completo e soprattutto se queste caratteristiche rappresentano una possibile minaccia per la sicurezza quando non le disattivo o non so come usarle.
Fondamentalmente, il tutto non sembra essere stato "fatto per me" e il mio piccolo micro-blog, ma grandi aziende con tonnellate di sistemi e moduli che devono interagire tra loro e scambiare dati in più formati , ecc.
Naturalmente, c'è sqlite, ma quando l'ho guardato per l'ultima volta sembrava che non supportasse la concorrenza e quindi è piuttosto inadatto per le applicazioni web.