Pomoc w wyborze metody...

0

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ą):

  1. 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".
  2. 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...
  3. 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.

0

ale zaraz zaraz, serwer MySQL masz na tej samej maszynie?

jak tak to nie ma co kombinować i zrobić 3, najprościej

0

no jeśli na tej samej maszynie to bym sie nawet nie pytał :D

Chodzi o to że to wszystko zależy od użytkownika... Ja będę miał MySQL u siebie ale kumpel będzie korzystał z mojego serwera więc będzie komunikacja przez sieć... No więc patrzmy z punktu widzenia mojego kumpla, kiedy to przy wielu połączeniach z MySQL oddalonym na jakimś tam serwerze MySQL w necie opóźnienia będą znaczne...

0

mówisz tu że możesz pozwolić sobie na 2s, powinieneś spokojnie się wyrobić, nie przesadzajmy komunikacja nie będzie taka wolna, to będą wielkości maksymalnie rzędu kilkuset ms, powiedzmy do sekundy

jeśli jednak wolisz inaczej, to w takim wypadku czy dysk czy pamięć to już twój wybór,
jesli możesz sobie pozwolić na pamięć, zrób w pamięci, jeśli nie to nie

0

No wiesz... nie wiem czy to by fajne było jeśli przy jednorazowym uruchomieniu programu miałoby pójść 1000 zapytań :P Tym bardziej jeśli było by więcej użytkowników... :P

No ale nic... jeszcze to przemyślę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1