Autor Zpráva
Lukkk
Profil *
Ahoj, cetl jsem par prispevku ohledne toho eshopu zendcart, mno a pracuji na svem redakcnim systemu. PHP sem se zacal ucit uz ted nedavno, kostru uz mam z vetsi casti napsanou.

Mno a rikal jsem se ze rychlost aplikace bych mohl urychlit tim ze nebudu pouzivat prikazy typu,
SELECT *

ale ze budu pouzivat jen SELECT toho co potrebuji a ruzne dalsi veci na zrychleni.

Mno tak sem si nasel script na mereni casu potrebneho k vygenerovani stranky mno ale jeste by mi hodil ten co vypise pocet dotazu MySQL databaze.

Poradite jaka funkce se k tomu pouziva? Pripadne odkaz na nejaky navod atd...

Diky
Alphard
Profil
možná existuje něco již hotového, ale počet dotazů na databázi jako autor scriptů snad znáš, nebo ne?
Lukkk
Profil *
Alphard
možná existuje něco již hotového, ale počet dotazů na databázi jako autor scriptů snad znáš, nebo ne?
Mno prave ze neznam, sem zacatecnik.

Myslim neco jako ...

Stránka vytvořena za 0.072 sekund, 9 dotazů.
Kajman_
Profil *
Udělejte si např. vlastní funkci na zpracování sql dotazu. Ta bude kromě volání standardní funkce přičítat počet, klidně může uchovávat i původní sql dotaz a chybový stav. Případně časovou náročnost každého z nich v nějakém poli.
suky
Profil
function query($dotaz)
{
# inkrementace poctu dotazu
return mysql_query($dotaz);
}
Joker
Profil
Lukkk
Za prvé není od věci si udělat vlastní "databázovou vrstvu", tj. například třídu Databaze, a potom používat tu místo třeba mysql_něco.
Jednak je potom daleko jednodušší přejít na jinou databázi (často stačí jen vyměnit tu databázovou třídu) a jednak se to dá přesně použít při takovémhle testování.
Například řekněme, že mám metodu Databaze->query($sql), která vykoná SQL dotaz.
Pokud mám složitější aplikaci, stačí si do té metody zvýšení nějakého čítače, pak ho vypsat a hned vím, kolik stránka generuje dotazů do databáze. Stejnětak se dá i zaznamenávat, jaké konkrétní dotazy se posílají.

K časové náročnosti, to taky není až tak těžké: na začátku skriptu se zjistí a uloží přesný čas, na konci taky a vezme se jejich rozdíl. Na zjištění času se hodí nějaká takováhle jednoduchá funkce:
  function gettime(){
		$time = explode( " ", microtime());
		$usec = (double)$time[0];
		$sec = (double)$time[1];
		return $sec + $usec;
tiso
Profil
Joker - od PHP 5.0.0 má microtime nepovinný parameter $get_as_float takže môže vrátiť float priamo, a tie čachre s explode nie sú potrebné...
Lukkk
Profil *
Joker
Ok mno říkaš tedy použít OOP, ja jsem tedy j nemu jeste moc nepricichnul protoze jsem zacatecnik, a nevidim v nem nejaky extremni prinos. Pokud bys mohl treba par prinosu vyjmenovat. Vim ze kdyz chci profesionalne programovat tak musim pouzivat OOP.

Mno a s tim prechodem na jinou databazi mas 100% pravdu, uz jsem o tom taky uvazoval. predelam to.

A tu funkci pro generovani casu uz jsem mel. (Btw. to jsem psal v prvnim prispevku.)

Takze diky, a jeste ty prinosy toho OOP ...
Alphard
Profil
Vim ze kdyz chci profesionalne programovat tak musim pouzivat OOP.
to bych netvrdil

v tomto případě bude OOP IMHO vhodnější, protože se jednou udělaná třída použije mnohokrát, ale jinak bych to nezobecňoval
ta funkce od sukyho by mohla inkrementovat globální proměnnou a bohatě by splnila tebou popsané požadavky
Lukkk
Profil *
Alphard
No prave ze ja bych se klidne OOP ucil ale nevidim v tom nejaky extra rozdil, jako nevim jaky je rozdil jestli to udelam v OOP nebo proste funkci.

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:

0