Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2]Doctrine duzy czas odpowiedzi
Forum PHP.pl > Forum > PHP > Frameworki
Matrix12
Witam,

Mam taki problem otóż chce wyświetlic 3000 recordow na stroni, czas doctrine to 60 ms. W zapytaniu sa dwa joiny i select wszystko ale chcę ten wynik jeszcze skrocic. Czy znacie jakies sposoby na przyspieszenie? Jak to z optymalizować?
Damonsson
i co Ci da skrócenie o 90% nawet? Wyświetlanie tylu rekordów na stronie to samobójstwo.
Matrix12
Okej ale Klient wymaga i po prostu to cchce. Wiesz jak to z optymalizować?
Crozin
1. Jakie dokładnie zapytanie generuje Doctrine? Co zwraca EXPLAIN tego zapytania?
2. Możesz pomyśleć nad ograniczeniem ilości zwracanych danych (kolumn/właściwości) - ale to takie "średnie" rozwiązanie.
3. Mocniejsza maszyna?
4. Masz jakieś możliwości cache'owania wyników tego zapytania?
Forti
->useResultCache($time)

potem w config.yml musisz ustawić np. na redis, memchaced itp. - zależnie do czego masz dostęp. (http://inchoo.net/dev-talk/caching-doctrine2-orm-results/)
Zwracaj wyniki jako array
nie używaj createQueryBuilder tylko:

  1. return $this->getEntityManager()
  2. ->createQuery('SELECT e FROM AppBundle:Example e ');


Najwięcej zyskasz z cached (100% optymalizacja zapytania), ale nadal wyświetlanie 3000 rekordów to rzeźnia. Nawet z paginacją. Może pomyśl właśnie o pobieraniu jedynie kilkudziesiędziu per strone i na kolejną strone - kolejne zapytanie. Przyśpieszysz to kilkukrotnie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.