Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][Symfony] - Optymalizacja zapytań przy dużej ilości użytkowników
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Zrobiłem sobie pewien algorytm rekomendacyjny, który wyświetla dane na podstawie podobieństwa użytkowników. Najpierw za pomocą pewnej metryki oblicza dla kazdego użytkownika wyniki, następnie sortuje wyniki na podstawie uzyskanych wyników i na końcu wybiera 5ciu użytkowników z nawiększymi wynikami , którzy są w tym momencie najbardziej podobnymi do użytkownika zalogowanego. Mając taką grupę 5ciu użytkowników wybierane są dane, które wybierali wcześniej oni, natomiast nie wybierał ich wcześniej zalogowany użytkownik.

I tak jeśli w bazie znajduje się 476 użytkowników to wyniki w toolbarze mam następujące:

DB Queries: 956
Query time: 218,98 ms
Invalid entities: 10

Czy ilość zapytań : 956 , przy tylu użytkownikach, przy takim algorytmie jest normalna ?

Proszę o podpowiedź co w toolbarze znaczy: Invalid entities 10 . Co mogę mieć źle ?

dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Liczba zapytań jest bardzo duża, nie widzę kodu ani algorytmu, ale prawodpodobnie da się ją zmniejszyć o rząd wielkości.

Przykład:

Doctrine standardowo używana tzw. lazy loading, więc załóżmy że Twoi użytkownicy mają jakąś relację z inną encją X. Pobierając normalnie 10 użytkowników i wyświetlając ich dane razem z danymi z encji X zostanie wykonanych tak naprawdę 11 zapytań (1 do pobrania użytkowników i po 1 na użytkownika do pobrania danych X).

Rozwiązaniem zmniejszającym ilość zapytań jest dopisanie własnej metody do repozytorium korzystającej z query buildera (w powyższym przypadku trzeba samemu zjoinować tabele).

Ten post edytował redeemer 3.08.2013, 10:18:40
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: 10.10.2025 - 05:05