Durante la lettura di questo argomento online ho scoperto che, in generale, gli RDBMS sono utili per leggere carichi pesanti e i database NoSQL sono utili per carichi di lavoro pesanti. Questa affermazione sembrava vera anche quando stavo confrontando MySQL con HBase. MySQL utilizzava alberi B + ottimizzati per le letture, mentre HBase utilizzava gli alberi LSM ottimizzati per le scritture.
Tuttavia, se i fatti sopra riportati sono veri, allora perché i database NoSQL vengono utilizzati principalmente per i carichi analitici (OLAP) mentre RDBMS viene utilizzato per i carichi di transazione (OLTP) dato che l'analisi è principalmente un carico pesante letto e OLTP ha un rapporto scrittura / lettura molto alto.
Un motivo per questo probabilmente è che le transazioni di solito coinvolgono dati che non possono essere persi, quindi abbiamo bisogno di un DB che sia compatibile con ACID. Tuttavia, dal punto di vista delle prestazioni, i due ruoli non dovrebbero essere invertiti?