05. november 2005 - 15:27Der er
8 kommentarer og 2 løsninger
Hurtige mysql query?
Hejsa,
Er dette den hurtigste løsning, for at check om en værdi findes i en tabel?
$cookie_query = mysql_query("SELECT id FROM sessions WHERE cookie_id='$cookie_id' ") or die(mysql_error()); $cookie_count = mysql_num_rows($cookie_query); if ($cookie_count != 0) {
Det kan aldrig betale sig at hente mere data ud end det man skal bruge:
$cookie_query = mysql_query("SELECT count(id) AS antal FROM sessions WHERE cookie_id='$cookie_id' ") or die(mysql_error()); $cookie_count = mysql_fetch_assoc($cookie_query); if ($cookie_count["antal"] != 0) {
$cookie_query = mysql_query("SELECT count(id) AS antal FROM sessions WHERE cookie_id='$cookie_id'") or die(mysql_error()); if (mysql_result($cookie_query, 0, 'antal') != 0) { }
Svært at sige - umiddelbart gætter jeg dog ikke på at det er ret meget forskel. Det er ikke helt nok at det fylder færre linjer. Desværre har jeg ikke lige en DB at tjekke efter med.
Jeg tror højst man sparer et millisekund ved den linie, hvis man da sparer noget som helst - og typisk plejer det at være queries der er flaskehalsen :)
Tror heller ikke det får den store betydning. Tabellen har 80,000 enteries og skal nok gennemsøges 40-50,000 gange per dag (jævnt fordelt).
Har en seperat DB server til dette formål (Dual Xeon, SCSI drives med 2GB ECC). Skal dog lige nævnes at overstående query, er en lille del af den totale belastning.
Takker for hjælpen :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.