Ahojte,
robim jeden projekt a chcel by som vediet, co je rychlejsie. Projekt je pisany v PHP a vyuziva SQL databazu.
V kode PHP vyberam z databazy 10 zaznamov, ktore idu za sebou. Tie sa nasledne vypisu do html.
Je rychlejsie dat databaze poziadavku s LIMITS, aby mi vybrala len od N po N+10, alebo je lepsie riesit tuto zalezitost na urovni PHP (teda 10 poziadaviek do DB - for cyklom pre vyber N, N+1, N+2,....N+10) ?
Co je rychlejsie/lepsie (kod aplikacie viem prisposobit)? Dakujem.
V jednom pripade idem for cyklom fetch_array na pole s 10 prvkami a v druhom pripade idem for cyklom vyberat zaznamy z DB. Z hladiska efektivity daneho kodu to mam jedno. Ide to 10 krat, co je konstanta, teda casova zlozitost je konstantna v oboch pripadoch.
Ide mi len o to, ci poziadavka na MySQL databazu, aby zosortila a vybrala danych 10 prvkov a nasledne fetch_array (for cyklus) je rychlejsie/pomalsie ako sortovanie a vyberanie danej poziadavky (myslim, ze zosortovane to bude uz v CACHE) vo for cykle.
V oboch pripadoch uz mam nadviazane spojenie s DB, takze to nehra ulohu.
Samozřejmě je rychlejší, když to udělá databáze. Když to budete načítat z databáze po jednom záznamu, bude počet požadavků 10× větší, než když to načtete najednou, přičemž vyřízení každého z těch požadavků bude takřka stejně náročné, jako vyřízení toho jednoho požadavku pro 10 záznamů.
Dokud toho nebudete o databázích a programování vědět mnohem víc, můžete myslím obecně předpokládat, že co dokážete bez nějakých krkolomných obezliček udělat rovnou v databázi, bude mnohem rychlejší, než kdybyste totéž dělal až v aplikaci.