Gå til innhold

Mysql Queries Teller


Anbefalte innlegg

Skrevet

Jeg har sett på flere web sider der det står hvor lang tid det tok å hente info fra databaser og sånn.

 

Noen som veit hvordan man lager et sånt script i php

Videoannonse
Annonse
Skrevet

Som nevnt er en databaseklasse antageligvis enkleste måte å gjøre dette på, men du kan jo også gjøre det med vanlig funksjonell programmering...:

 

function my_query($q, $connection = false)
{
static $queries;
static $queryTime;
if ($q === true)
	return array('queries' => $queries, 'time' => $queryTime);
$start = microtime(true);
if ($connection === false)
	$x = mysql_query($q);
else
	$x = mysql_query($q, $connection);
if ($x)
{
	$queries++;
	$queryTime += (microtime(true)-$start);
 }
 return $x;
}

Så bare caller du den funksjonen istedenfor mysql_query() når du skal kjøre queries. Når du vil hente ut informasjonen så caller du funksjonen slik: my_query(true) og får tilbake en array med antallet spørringer og tiden de har tatt.. =)

Skrevet

Var procedural jeg tenkte på ja, men kom ikke på noe bedre norsk ord for det ;)

Dessuten så er det jo "funksjonell" programmering i den forstand at den er lineær og funksjonsbasert.. :innocent:

Skrevet
"prosess orientert"

 

Om vi absolutt skal pirke; "prosessorientert" ;) Nå er jeg ikke så stor fan av fornorskede uttrykk, spesielt ikke når det gjelder programmering o.l.

Skrevet
Som nevnt er en databaseklasse antageligvis enkleste måte å gjøre dette på, men du kan jo også gjøre det med vanlig funksjonell programmering...:

 

function my_query($q, $connection = false)
{
 static $queries;
 static $queryTime;
 if ($q === true)
	 return array('queries' => $queries, 'time' => $queryTime);
 $start = microtime(true);
 if ($connection === false)
	 $x = mysql_query($q);
 else
	 $x = mysql_query($q, $connection);
 if ($x)
 {
	 $queries++;
	 $queryTime += (microtime(true)-$start);
  }
  return $x;
}

Så bare caller du den funksjonen istedenfor mysql_query() når du skal kjøre queries. Når du vil hente ut informasjonen så caller du funksjonen slik: my_query(true) og får tilbake en array med antallet spørringer og tiden de har tatt.. =)

 

Det er vel langt fra alle webhotell som har gått for PHP for fullt, så microtime(true) bør kanskje erstattes av array_sum(explode(" ", microtime()));

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...