Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2002 Skąd: Gliwice Ostrzeżenie: (0%)
|
Witam,
Mam pewien problem z pobieraniem danych z MYSQL. W jednej tabeli mam jakies 180 000 rekordow, codziennie jest dopisywane po kilkaset, w sezonie nawet po kilka tysiecy. W tej chwili musze zrobic raporty finansowe oparte na tych danych. Problem jest taki, ze jak proboje pobrac wieksza ilosc danych MySQL "siada". Zmienilem czas wykonywania skryptu, pamiec dla PHP, niestety nie wiem ktore jakie ustawienia MYSQL powienienem zmienic aby za 1 razem udalo sie pobrac np. 180 000 rekordow. Jednym z rozwiazan jest porcjowanie danych i dzielenie na pliki (w tej chwili wszystkie dane sa konwertowane do Excela), niestety nie wiem jak to teraz polaczyc w jeden plik:/ Czy ktos spotkal sie z podobnym problemem? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%)
|
Bazy danych posiadają pewne mechanizmy chroniące przed fragmentacją swoich plików. Polega to na tym, że pliki danych mysql, zwłaszcza tabel innodb stale sie powiększają, a nie zmniejszają się w momencie usuwania danych. Baza raz obserwując zapotrzebowanie na przestrzeń dyskową nawet po skasowaniu danych zachowuje ją jako zajętą aby system operacyjny nie wrzucił na dysk między dane należące do mysql swoich plików fragmentujących dane - co mogłoby spowalniać pracę mysql. Niezdefragmentowany dysk i baza spowalniają pracę bazy. Taki sam mechanizm mają też np. bazy MSAccess. Spróbuj wrzucić do bazy msaccess dane i sprawdź rozmiar pliku. Potem usuń dane z tabel - rozmiar pliku sie nie zmniejszy. Jest specjalne polecenie w msaccess pozwalające "zdefragmentować" dany plik. W mysql takiego mechanizmu nie ma. Dlatego też aby wyszczuplić bazę trzeba ją wyeksportować do pliku sql i najlepiej na nowo zainstalować mysql. Zaimportowana baza będzie odchudzona. Podobny problem był kiedyś w win98 z rejestrem systemowym, który ciągle puchł. Aby przyspieszyć system można było zdefragmentować rejestr - dokładnie na takiej samej zasadzie - eksport i ponowne zaimportowanie. (ale to długo trwało :) Baza oczywiście puchnie wtedy kiedy naprzemiennie ciągle importujemy do niej duże ilości danych i je kasujemy. Dlatego do testów powinno sie używać innego serwera niż docelowy. Rozfragmentowana, kilku GB baza może nieźle zarznąć komputer.
|
|
|
|
dcooper Duza ilosc danych 3.12.2007, 12:25:27
Indeo Tak. Ja sie spotkałem. Ja mam miliony rekordów w b... 4.12.2007, 07:39:48
dcooper Witam, dzieki za odpowiedz.
Mam kilka problemow z ... 4.12.2007, 13:47:45 
sethir Cytat(dcooper @ 4.12.2007, 13:47:45 )... 5.12.2007, 14:19:22
dcooper Witam, czym powinienem sie kierowac? Na co powinie... 5.12.2007, 15:06:21 
sethir Cytat(dcooper @ 5.12.2007, 15:06:21 )... 5.12.2007, 15:14:29
Indeo Indeksy zakładasz na wszystkich punktach, w któryc... 6.12.2007, 08:29:49
dcooper A wiec tak:
1) zamowienia - 180 000 rek.
2) klien... 12.12.2007, 17:59:44
Indeo A pokaż no to zapytanie 12.12.2007, 18:46:28
dcooper Tu nie chodzi o zapytanie. Przy nawet prostym SELE... 14.12.2007, 14:42:55 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 00:04 |