![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Za każdym razem przy odświeżeniu uruchamiasz przeliczanie? Jeśli tak, to może rozważ przeniesienie tego do command dla każdego użytkownika i uruchamianie co kilka/kilkanaście godzin. Tak za każdym razem przy odświeżeniu strony uruchamiam przeliczanie. Dlaczego proponujesz uruchamiać to co kilka/kilkanaście godzin ? Ja te wyniki muszę przeliczać ciągle ponieważ ciągle coś w systemie się będzie zmieniać (przybywać danych) i na tej podstawie muszę od nowa liczyć i wyświetlać "aktualnie" najlepsze wyniki. Apropo tego rozwiązania : Cytat Albo wrzucenie wyniku raz wykonanego zapytania do cache'a (rozwiązanie bardziej sensowne) Jak to się robi w Symfony ? Nie robiłem tego jeszcze a faktycznie to pewnie będzie dobre rozwiązanie. Tylko czy aby sprawdzi się to wobec tego co napisałem powyżej ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:04 |