![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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:
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 12:26 |