Autor Zpráva
Enyeus
Profil
Ahoj, měl bych na vás takový dotaz:
Jaký je přiměřený počet SQL dotazů na jednu stránku? 5, 10, 50, 100? Jde mi o to aby se web nebrzdil ani při vysoké návštěvnosti. Vím že čím méně tím lépe, ale jaká je taková ta horní hranice?
imploder
Profil
Enyeus:
Co nejmíň, protože komunikace PHP s mysql zpomaluje. Pokud je potřeba zadat hodně SQL příkazů najednou, dá se použít mysqli_multi_query.

Zajímavý článek: http://www.webfaq.cz/clanek/Jeden-dotaz-do-databaze-nebo-tisice-je-to-stejne
Enyeus
Profil
Bohužel rozšíření MySQLi nemám k dispozici.
mcmatak
Profil *
setkáš se s tím, že někteří programátoři/firmy mají dokonce v takových interních pravidlech napsané, že nejdůležitější je minimum dotazů do dtb, nicméně byť jsou transakční náklady na dotaz do dtb vysoké, pohybujeme se v desítkách/stovkách milisekundách, což má smysl řešit při hromadných operacích, aktualizace z xml, csv apod.

další věcí je jestli jedeš na innodb nebo mysql, innodb je lépe připravena na konkurenční přístup, tedy není tak velký problém kombinovat select a insert

určitě záleží na složitosti dotazu, opět vykonání nějakého selectu bude v milisekundách, spousty lidí načítají např. eshop nabídku (tedy v databázi uložené jako položka, parentid) rekurzivně

dále záleží na spoustě dalších věcí....

největší problém hodně programátorů je, že řeší optimalizace dříve než je potřebují, a někdy zase naopak, pokud můžeš proveď co nejmíně dotazů, pokud to neumíš optimalizovat tak dokud nebude problém neřeš to, každopádně víc než 100 není málo
matak
Profil
sorry

* další věcí je jestli jedeš na innodb nebo myisam
AM_
Profil
imploder:
"http://www.webfaq.cz/clanek/Jeden-dotaz-do-databaze-nebo-tisice-je-to-stejne

Docela by mě zajímalo, proč se to jmenuje takhle, když autor v článku tvrdí přesný opak :)

Otázka, kolik dotazů na databázi je přiměřených, je špatná otázka. Je to jako se zeptat, kolik se vyplatí dát peněz za auto. Chcete lepší auto? potřebujete víc peněz. Žádná hranice není, jen vaše ochota investovat. Samozřejmě koupit trabanta za půl milionu je asi stejné, jako mít jednoduchý skoro statický web, který s každým načtením stránky provede desítky dotazů.

Lepší otázka je, zda je daný problém lepší rozdělit do hodně dotazů, nebo se jej snažit vyřešit jedním. V tomto případě se odvolávám na výše citovaný článek: neplatí to sice úplně vždycky, ale pokud neděláme profesionální web s 1000 zobrazeními stránky za sekundu, stačí nám vědět, že jeden složitý dotaz je obvykle suverénně rychlejší, než mnoho jednoduchých.

Viděl jsem někde i rozsáhlejší testy, a vychází to tak, že zatímco s množstvím dotazů roste časová náročnost cca lineárně, s množstvím operací zahrnutých v jednom dotazu nerostla skoro vůbec.
matak
Profil
AM:

přečti název článku jsou tam otazníky
AM_
Profil
matak:
aha, četl jsem jenom URL. pak už jsem se pustil do článku, titulek jsem tak hluboce nezkoumal. Stejně, já bych to nazval spíš "srovnání" :)
matak
Profil
nj ale to by nikdo nečetl :)

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: