Autor Zpráva
Perry
Profil
Je počet dotazů 80 na mysql v rámci jedné stránky hodně, pokud se stránka vygeneruje za 0,100 sekundy (nejdelší čas, průměr okolo 0,05)? :) Jestli se mám psát s nějakou cachovací fcí, nebé to můžu nechat bez toho, aniž by mi to zbořilo DB.

Měřeno tímhle:
<?php
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
....
$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('Page loaded in %.3f seconds.', $totaltime);
?>
AM_
Profil
Mám 10000Kč, je to hodně?

Jinými slovy: musíš vědět, jakou efektivitu požaduješ, a nedělat zcela zbytečné chyby. pokud ti na stránku chodí ne víc než jeden člověk za minutu, posílej třeba pět set dotazů na DB a bude to skoro jedno. Pokud máš návštěvnost v řádu deseti až statisíců denně, stojí každá optimalizace za zvážení.
U MySQL platí obecně, že by ses měl snažit problém řešit s co nejmenším počtem dotazů, ale samozřejmě existuje určitá optimální míra pro daný problém a na méně dotazů jej již vyřešit nejde (nebo by si to vzalo neúměrné nároky jinde). Pokud to jinak řešit nejde, tak tedy ano, pokud se ptáš 80x na stejnou věc, tak je to blbě. Bývá to obvyklá začátečnická chyba těch, kteří neumí napsat efektivní dotaz do DB, že problém, který by šlo řešit jedním dotazem, řeší třeba padesáti dotazy - nejkomičtější bývají dotazy v cyklu (ano, i já tak kdysi začínal :D ).
SwimX
Profil
Perry:
80 dotazů je dost, nešlo by nějak spojit více dotazů do jednoho? Na druhou stranu 0,05s je hodně dobré :))
Perry
Profil
SwimX:
vetsinou jsou to jednoduché dotazy na výběr nějakého počtu řádek.

AM_:
Dotazy v cyklu už taky nepoužívám :D.

Jinak díky za odpověď .
Taps
Profil
Perry
je otázka zda používáš mysql_num_rows nebo count v selektu
Perry
Profil
Taps:
COUNT()
ninja
Profil
Perry: 80 dotazu na jendu webovou stranku je hodne. To nacitate opravdu tolik jedinecnych, neslucitelnych dat? Moc si takovou strnaku nedokazu predstavit...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: