2012-02-14 12 views
8

Non sono sicuro se utilizzare le Collezioni Java o alcuni DB in memoria (H2 o HSQLDB - sono probabilmente i più veloci). Ho bisogno di buoni risultati in termini di prestazioni: ci saranno centinaia di oggetti/righe, non verranno eseguite query JOIN o più complesse.Collezioni Java rispetto alle prestazioni del database in memoria

Sto davvero pensando di in-memory database, a causa delle limitate dimensioni del java heap - gli oggetti che sto lavorando con può essere molto grande e anche ci sarà un sacco di loro (centinaia, come ho già detto)

pensi che sia una buona idea usare il database in memoria per una grande quantità di dati?

+2

in termini moderni, centinaia di oggetti non sono molto. Quando dici che gli oggetti saranno grandi - quanto è grande? – Sheriff

+3

Centinaia di oggetti è ridicolo, anche se ogni oggetto ha un centinaio di campi. Inoltre, la memoria deve arrivare da qualche parte, e un DB probabilmente aggiungerà qualche overhead. – delnan

+0

Beh, _centina_ ... potrebbe essere un eccesso ... semplicemente - ci possono essere molti oggetti. – Igor

risposta

3

Centinaia di oggetti da 10 KB sono ancora solo pochi MB. Keep it simple è il mio suggerimento. Centinaia di migliaia di oggetti da 1 KB possono essere facilmente inseriti in una JVM a 32 bit.

Non vorrei utilizzare un database in memoria finché non si sta entrando nei GB dei dati. Se hai centinaia di GB, l'unica opzione è usare un database di qualche tipo.

Disclaimer: utilizzo nei database di memoria e ne ho persino scritto uno o due.

3

Provare a farlo con le collezioni. Se poi ti rendi conto di un problema puoi ancora farlo. Si tratta solo di astrarre l'implementazione in modo che i tuoi algoritmi non si aspettino l'uno o l'altro. (Ancora un altro "in anticipo ottimizzazione è male" rant)

2

Come altri hanno già detto, "centinaia" non è molto, e ora sembra che tu stia dicendo potenzialmente meno di centinaia. E se la dimensione dell'heap è un problema, puoi Increase the JVM Heap Size

Problemi correlati