Witam.
Projektuję sobie programik, który pobiera z bazy danych MySQL sporą ilość danych tekstowych z 6 tabel. Każdą porcję danych zapisuje do jednej z 6 tablic C-stringów (a dokładniej wxArrayString ponieważ korzystam z biblioteki wxWidgets). Program następnie wykonuje pewne operacje na tych danych (tj. wybiera po jednym rekordzie ze wszystkich tablic i "miesza je ze sobą"), po tym wysyła te dane do innego serwera w postaci jednego już rekordu.
No i stoję teraz przed dylematem jak najlepiej przechowywać dane potrzebne programowi (te dane przed obróbką):
- Czy pobrać wszystko za jednym zamachem z MySQL, a potem stworzyć sobie klasę z jakimiś tam tablicami i funkcjami do obsługi zawartych tam danych i potem stworzyć obiekt tej klasy i za pomocja tych funkcji pobierać poszczegolne rekordy? Wszystkie dane siedzą wtedy w pamięci... Szybki dostęp jest wiadomo ale narzut pamięci bylby ogromny bo tak jak mówię danych z MySQL było by dużo - nawet tysiąc dla jednej z "tablic".
- Czy może pobrać wszystkie dane z MySQL, zapisać je do pliku *.temp (każda "tablica" w oddzielnym pliku) na dysku i odczytywać poszczegolne rekordy z dysku? Wtedy w pamieci przechowuję tylko to nadczym aktulnie pracuję ale czas dostępu do dysku i wyszukiwanie interesującego mnie rekordu też jakiś tam jest...
- Czy też może najlepsze bylo by odczytywanie pojedyńczych wierszy z tabeli MySQL - tych nad których mam zamiar aktualnie pracować? Problemem może być opóźnienie sieci jeśli serwer jest na jakimś odległym serwerze z nie najlepszym łączem...
Co waszym zdaniem było by najlepszym sposobem przechowywania danych? (Od razu mówię że dane muszą być pobierane z MySQL, a czas pomiędzy kolejnymi pobraniami porcji danych [licząc orientacyjny czas wykonywania poszczególnych operacji] wynosi okolo 2 sekund). Z góry dzieki za wszystkie sugestie.