![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 22.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
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ć? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
i co Ci da skrócenie o 90% nawet? Wyświetlanie tylu rekordów na stronie to samobójstwo.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 22.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Okej ale Klient wymaga i po prostu to cchce. Wiesz jak to z optymalizować?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
->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:
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. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:48 |