Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Rychlost stranek v nette

Martha Hunter
verified
rating uzivatele
13. 10. 2023 06:16:18
Zdravím,
programuji si novou aplikaci a řeším problém v rychlosti. Nevím či na to jdu správně, jelikož mi to načítá vždy strašně dlouho. Je to kvůli dotazům do DB a největší dotaz je tento:
Mám hlavní kategorii v ní podkategorie a v ní další podkategorie. V každé kategorii mám nějaké produkty. Po kliknutí na kategorii, mi to musí vypsat produkty a funguje to tímto stylem:
"zjištění všech podkategorií zobrazené kategorie (opět to samé pro všechny podkategorie), potom vybrání všech produktů z těchto kategorií (+ podmínka jestli je produkt aktivní nebo neaktivní)."
tento dotaz mi trvá strašně dlouho, nevím jestli na něho jdu špatně a nebo se to dá řešit jinak?
jde mi o logiku.
děkuji za případné tipy
13. 10. 2023 06:16:18
https://webtrh.cz/diskuse/rychlost-stranek-v-nette-2/#reply1521149
David Musil
verified
rating uzivatele
(68 hodnocení)
13. 10. 2023 07:49:27
Kolik mas celkem kategorii ve vsech urovnich?
Vetsinou staci zobrazit podkategorie v te aktualni kategorii, nehlede na aktualni uroven. 
Pokud jsou produkty v urcite podkategorii nejnizsi urovne, pak by mely byt automaticky i v te tomu nadrezene a to opet napric urovnemi. To ti ten proces hrozne moc urychli. Posli treba ukazku kodu. Je mozny, ze tam mas treba nejaky vnoreny select a zbytecne se ti opakuje. 
Jaky je cas zpracovani procesu, ktery popisujes?0
13. 10. 2023 07:49:27
https://webtrh.cz/diskuse/rychlost-stranek-v-nette-2/#reply1521151
Michal Novák
verified
rating uzivatele
(10 hodnocení)
14. 10. 2023 14:15:06
Tady záleží zejména na databázi (jaké jsou indexy atp.), nespojoval bych problém s Nette. Hlavně toto by se mělo cachovat, v podstatě se načítají téměř vždy stále stejná data. Až když dojde k editaci kategorie nebo produktu či přidání, tak by se cache měla obnovit.
14. 10. 2023 14:15:06
https://webtrh.cz/diskuse/rychlost-stranek-v-nette-2/#reply1521180
Radim D.
verified
rating uzivatele
(7 hodnocení)
14. 10. 2023 19:04:39
Tohle nemá s Nette nic společného. Používat cache je fajn, ale hlavně bych se zaměřil na správný algoritmus. Doporučuji k pozornosti "Traverzování kolem stromu". 
Zjednodušeně řečeno, algoritmus spočívá v přidání dalších dvou atributů ("levý" a "pravý") a ke každé položce ve stromu vypočítat tyto hodnoty tak, aby každá položka měla hodnoty levý a pravý nastavené tak, že všechny položky pod ní měly hodnoty mezi nimi. A pak už stačí jen jeden dotaz pro zjištění všech položek nižší úrovně.
SELECT * FROM polozky WHERE levy > ? AND pravy < ?
Pěkně je to popsáno třeba v https://zdrojak.cz/clanky/ukladame-hierarchicka-data-v-databazi-ii/
Hlavně ale je nutné po jakékoliv změně v hierarchii přepočítat "levý" a "pravý" všech položek.
Editováno 14. 10. 2023 19:05:26 uživatelem Radim D.
14. 10. 2023 19:04:39
https://webtrh.cz/diskuse/rychlost-stranek-v-nette-2/#reply1521188
Pro odpověď se přihlašte.
Přihlásit