Mysql
 sql >> Database >  >> RDS >> Mysql

Aggregazione dati mongodb vs mysql

Se stai cercando un DBMS ad altissime prestazioni e non hai bisogno che sia relazionale, potresti prendere in considerazione Cassandra, anche se i suoi vantaggi entrano in gioco solo se hai un cluster di database invece di un singolo nodo.

Non hai detto quali limiti ci sono sull'architettura fisica. Hai menzionato il partizionamento orizzontale che implica un cluster. Anche i cluster MySQL IIRC supportano lo sharding.

Sarebbe anche molto utile sapere quale livello di simultaneità il sistema è destinato a supportare e come verranno aggiunti i dati (drip-feed o batch).

Dici "Ovviamente non posso precalcolare nessuno dei risultati dell'aggregazione perché le combinazioni di filtri (e quindi i set di risultati) sono enormi".

Questo è il tuo problema più grande e sarà il fattore più importante nel determinare le prestazioni del tuo sistema. Certo, non puoi mantenere visualizzazioni materializzate di ogni possibile combinazione, ma la tua più grande vittoria in termini di prestazioni sarà mantenere visualizzazioni preaggregate limitate e costruire un ottimizzatore in grado di trovare la corrispondenza più vicina. Non è poi così difficile.

C.