Cosa ne pensate di Mongo DB ?
Vladimir onestamente lo conosco poco, non ne ho mai fatto uso. Si tratta di un database "non-SQL", in pratica SQL è un linguaggio di tipo relazionale, un sistema del tipo NoSQL (o "non-SQL"), usato ad esempio da MongoDB, ha il pregio di essere scalabile e ad alte prestazioni, quindi quando si ha a che fare con una quantità molto grande di dati, è più efficiente fare uso di un sistema di questo tipo. MongoDB è stato scritto in C++ ed è disponibile con varie librerie per adattarsi a vari linguaggi (Node.JS, Python, C++, Java, C#, Ruby).
Vediamo in generale le differenze fra un database di tipo SQL e uno NoSQL (approfondimento):
- SQL è di tipo relazionale, NoSQL è di tipo non-relazionale
- SQL ha uno schema strutturale predefinito, fissato, NoSQL ha schemi di tipo dinamico, non strutturato
- SQL è scalabile verticalmente (upgrade RAM, CPU, SSD del singolo server), NoSQL è scalabile orizzontalmente (fare riferimento a più server diversi)
- SQL è basato su tabelle, NoSQL fa riferimento a documenti, valori chiave, grafi (struttura matematica discreta composta da archi e nodi, vedi teoria dei grafi)
- SQL si presta meglio per dati organizzabili in tabelle ben strutturate, NoSQL si presta meglio per documenti e quindi dati non strutturati, es. JSON
Esistono diverse soluzioni per entrambi i casi, diciamo che le più famose sono certamente MongoDB per il caso NoSQL e MySQL per il caso SQL.