Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Postgresql - wydajność
Ziels
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

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


Witam

Jakiś czas temu opisałem problem z ładowaniem wpisów do bazy - rozwiązaniem okazał się serwer dedykowany i podzielenie pliku na pakiety (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Aktualnie mierzę się z takim problemem: baza zawiera 30 mln wpisów i zwykły count zajmuje 8 sekund (tak, wiem, w postgresqlu są wolne, ale bez przesady!). Jak można rozwiązać problem wydajności przy tej ilości danych? Czytałem trochę o partycjonowaniu tabel, trochę o widokach - jednak nie wiem które rozwiązanie przyniesie największe korzyści wydajnościowe. Tabela zawiera 4 kolumny - 3 integery i 1 boolean.

Jeśli to ma znaczenie: wyszukiwanie w niej planowo ma się opierać na czymś takim: WHERE col1 = 5 AND col2 BETWEEN 400 AND 94200
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ziels
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

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


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

To ja moze jeszcze skorzystając z tego że założyłem temat dopytam - jak sobie poradzic z zapytaniami zwracającymi dużo rekordów przy tej ilości danych?

przykładowe zapytanie:
  1. SELECT DISTINCT test1.*,
  2. test2_in_test1.*,
  3. test2.*
  4. FROM test1 LEFT JOIN test2_in_test1 ON test1.ID=test2_in_test1.test1_ID
  5.  
  6. LEFT JOIN test2 ON test2.ID=test2_in_test1.test2_ID
  7.  
  8. LEFT JOIN test3 ON test1.COLUMN=test.OTHER_COLUMN
  9. ;


test1 - 22 tys. wpisów
test2- 13 tys. wpisów
test2_in_test1 - 30 mln wpisów
test3 - 40 tys wpisów

Z czego każdy rekord z test1 może mieć około 7 tysięcy zaleznosci w tabeli łączącej.

Zapytanie przedstawione powyżej jest niesamowicie wolne - co polecacie żeby sobie z tym poradzić? Czytałem o Materialized view - wydaje mi się że to mogło by znacznie przyspieszyć działanie.
Dalej - może jakieś partycjonowanie bazy?

Ten post edytował Ziels 4.08.2008, 19:35:30
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: 6.10.2025 - 12:26