Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Duza ilosc danych, Jak pobierac, jak konfigurowac MySQL
dcooper
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Indeo
post
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

Ostrzeżenie: (0%)
-----


Tak. Ja sie spotkałem. Ja mam miliony rekordów w bazie i moje sposoby optymalizacji to:

1) - szybkie tabele (te do analiz) myisam
2) - przemyślana struktura tabel i ich optymalizacja (indeksy)
3) - konstruowanie optymalnych zapytań - INNER JOINS są szybsze niż podzapytania. Zapytania do tabel są szybsze niż zapytania do widoków itd.
4) - skomplikowane zapytania można rozbić na kilka mniejszych (wynik wczesniejszego w tymczasowej tabeli)
5) - w przypadku analiz sprawozdawczych w firmie, które mają zazwyczaj miejsce w określonych dniach miesiąca/tygodnia można wykonać wstępne przygotowanie danych. Robi tak wiele komercyjnych systemów CRM - po zamknięciu kolejnych okresów sprzedaży tworzone są z nich statystyki, wystarczające już potem do większości analiz, chodzi o to by zbędnie nie męczyć engine bazy danych. Aplikacje są tak przemyślane aby zamknięte okresy sprzedażowe nie mogły już zmieniać swoich danych, a ewentualne korekty doliczają się do aktualnego okresu. Raz wyliczone uproszczone statystyki są już niezmienne do końca świata.

Zatem jeśli Twoje wyliczenia są złożone jako zapytania bo np. łączą kilka tabel można je przyspieszyć wykonując po zamknięciu jakiegoś okresu (albo raz dziennie) zrzut wyniku zapytania z łączonych tabel do jednej tabeli. Mógłby to być widok tylko tu chodzi o gotową tabele a nie każdorazowe składanie wszystkiego do kupy. Tabela oczywiście musi nieć odpowiednie indeksy do wyszukiwania (do łączenia już nie bo wszystkie dane są w jednej tabeli)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 21:06