Počet SQL dotazů, moc nebo málo?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
exquis
Člen | 83
+
0
-

Ahoj,

dříve jsem byl zvyklý psát jen v čistém PHP, kde jsem si dával sakra pozor, kolik SQL dotazů použiji, nevím proč, ale měl jsem furt zakódováno, že každý dotaz je hrozné zdržení (i když to jsou řádově ms). Vždycky jsem se vešel třeba okolo 4 dotazů na stránku.

No cca před měsícem jsem přešel na nette a debug baru vidím, že najednou používám třeba 14 dotazů na stránku, čemuž by asi šlo zabránit, ale chci abych psal už trochu obecněji, takže se tomu nevyhnu. Nejdřív mě ten počet docela vyděsil, ale když vidím, že to stejně zabere třeba jen 3 ms, tak si zas říkám, že nejde o nic hrozného.

Jaký je váš názor? Je to velký počet mít průměrně tak 12 dotazů na stránku? Asi bych měl říci, že se jedná o eshop. Na klasické weby se dostanu cca 5–8 dotazů. Je mi jasné, že obecně čím míň, tím líp. Asi ten pocit plyne z nejistoty, jestli se učím Nette správnou cestou ;)

Kolik máte běžně dotazů:

  1. na načtení běžné webovky s klasickým obsahem ala text, nadpis, menu
  2. u složitějších projektů

Díky

Jan Tvrdík
Nette guru | 2595
+
+3
-

12 dotazů je úplně v pohodě. Pokud navíc používáš NDBT, tak jsou ty dotazy navíc rychlé, protože NDTB preferuje pokládaní více jednoduchých dotazů místo méně složitějších, čímž optimalizuje množství přenesených dat a tím i celkovou rychlost.

Zax
Člen | 370
+
0
-

Asi tak. Skutečně problém bych viděl tak od stovky výš a to ještě počítám s Doctrinou, která je oproti NDB skutečně pomalá (pokud člověk jede „na prasáka“ a všude hydratuje jen do entit). NDB osobně nepoužívám, ale viděl jsem projekt používající NDB, kde bylo cca 150 dotazů na stránce a pořád to šlapalo úplně v klidu, žádné drastické zpomalení se nedělo. Nevím, kde/jak pracuješ, ale v korporátní sféře se tohle zdá být naprosto běžnou praxí, nikdo nemá čas řešit počet dotazů, to se radši koupí silnější server :-D

exquis
Člen | 83
+
0
-

Pracuji jen pro sebe, žádná velká věda :D spíš když už se něco učím nového, tak chci, aby to dávalo smysl a abych se neučil blbě ;) právě jedu na NDB a jak říká Zax, tak né vždy je čas řešit počty dotazů, takže občas mi tam něco ulítne, po napsání bych to chtěl ale ještě zvalidovat a okrouhat zbytečné dotazy na minimum..

Zax
Člen | 370
+
+1
-

Vyzkoušet si optimalizaci rozhodně není vůbec na škodu. Kdybys chtěl počet dotazů srazit na nulu, tak doporučuju vyzkoušet cachování v Nette, zejména invalidaci přes tagy ;-)

Docela zajímavá diskuze k db a cachování je tady – https://forum.nette.org/…-nebo-object sice je to hodně o Doctrině, ale myšlenky od @mkoubik jdou aplikovat i při použití NDB.