Witam,
Mam pytanie, w pracy potrzebuję napisać programik w JAVIE do wyliczania pewnych charakterystyk. Do wyliczenia tych charakterystyk potrzebuję pobrać z bazy danych, dokładnie z 3 tabel dane(z każdej tabeli około 5 kolumn). I tutaj pojawia się moje pytanie, bo tych danych jest około 3-4 mln rekordów z każdej tabelki, w jaki sposób, w jakiej strukturze (jakaś tablica, lista, itp) przechowywać te dane, żeby programik działał w miarę wydajnie i nie zajmował zbyt wiele zasobów?
Jestem otwarty na wszelkie propozycje.
Pozdrawiam
Jeśli masz dużo ramu i potrzebujesz wiele razy użyć dane z tych tabel, to możesz je wczytać i prowadzić na nich obliczenia.
Natomiast, jeśli wyliczasz charakterystyki w jednym przebiegu, to nie ma sensu wczytywać wszystkich danych do pamięci -> prowadź obliczenia w locie.
Biblioteka kolekcji, która jest wydajniejsza od standardowej i zajmuje mniej pamięci: http://trove.starlight-systems.com/
3*5*4 mln = 60 mln
Rozumiem że są to liczby skoro coś na nich liczysz więc powiedzmy że z narzutem jakimś 60mln * 16 bajty
= 960 MB
Nie widzę sensu żeby się bawić w jakieś kombinowanie bo tyle pamięci to raczej masz ;) Ale jeśli faktycznie liczysz to jakoś jednoprzebiegowo to lepiej czytać dane w locie.
Dzięki wszystkim za pomoc, koniec końców zdecydowałem się na wykorzystanie Arraylist.
Jeżeli pobierasz z bazy to może da się to wyliczyć w SQLu?