performance vraag(1 query vaak uitvoeren, of 1 zware query?)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ferdy

Ferdy

13/04/2007 13:37:00
Quote Anchor link
Ik vroeg mij af of er verschil in snelheid zat, en zoja, hoeveel tussen de volgende 2 constructies.

$result = mysql_query("SELECT `id` FROM `tabel1` WHERE `parent`=" . addslashes($_GET['cat']));
while($row = mysql_fetch_assoc($result)){

$result2 = mysql_query("SELECT `id` FROM `tabel1` WHERE `parent`=" . $row['id']);
while($row2 = mysql_fetch_assoc($result2)){

#doe iets

}

}

of

$array = array();
$result = mysql_query("SELECT `id` FROM `tabel1` WHERE `parent`=" . addslashes($_GET['cat']));
while($row[] = mysql_fetch_assoc($result)){

$array[] = $row[count($row) - 1]['id']

}
$result2 = mysql_query("SELECT `id` FROM `tabel1` WHERE `parent` IN(" . implode(', ', $array[]) . ")");
while($row2 = mysql_fetch_assoc($result2)){

#doe iets

}
Gewijzigd op 01/01/1970 01:00:00 door Ferdy
 
PHP hulp

PHP hulp

05/05/2024 11:29:55
 
Kalle P

Kalle P

13/04/2007 13:40:00
Quote Anchor link
Die 1e duidelijk niet, je voert dan de hele tijd (het aantal records dat geselecteerd is door de query) query2 uit.

2!
 
Frank -

Frank -

13/04/2007 13:42:00
Quote Anchor link
Domme vraag, dit kun je zelf testen!

Offtopic: geen gore backtics ` in je queries zetten!

Edit: Een subquery lijkt mij overigens op zijn plaats. Scheelt je een query vanuit php richting de database.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jurgen assaasas

Jurgen assaasas

13/04/2007 13:42:00
Quote Anchor link
OVer die performance hoef je je niet zo druk te maken, een server kan honderden query's per seconde verwerken.

Waar je in dit geval beter op kan letten is het controleren van je query's ze lukken niet altijd natuurlijk en dan klopt er niks van je output(als deze er wel is).
 
- SanThe -

- SanThe -

13/04/2007 13:44:00
Quote Anchor link
Gewoon even een testcase maken en testen maar.
 
Ferdy

Ferdy

13/04/2007 14:11:00
Quote Anchor link
Bedankt voor de reacties

Wat is er trouwens mis met die backticks?
 
Frank -

Frank -

13/04/2007 14:13:00
Quote Anchor link
Ferdy schreef op 13.04.2007 14:11:
Wat is er trouwens mis met die backticks?
Alles!

Hoewel, het is ook niet tegen de wet om in je eigen bed te pissen, het gebruik van backtics is evenmin verboden.

Kom alleen niet zeuren dat je vervolgens hopeloos in de problemen komt, die heb je net zelf aangemaakt.
 
- wes  -

- wes -

13/04/2007 14:18:00
Quote Anchor link
frank ik ben trots op je. you've learned well young one
 
Ferdy

Ferdy

13/04/2007 14:28:00
Quote Anchor link
ik bedoelde meer wat het nadeel van het gebruik ervan is
 
- wes  -

- wes -

13/04/2007 14:29:00
Quote Anchor link
het is niet de standaard. tis omslachtig, niet nodig en door mysql verzonnen
 
Ferdy

Ferdy

13/04/2007 14:39:00
Quote Anchor link
ah okay, bedankt.

Nooit geweten
 
Frank -

Frank -

13/04/2007 14:42:00
Quote Anchor link
En het is al gezegd, het gaat problemen opleveren! Je kunt namelijk zonder enig probleem (!) foute kolomnamen e.d. gaan gebruiken. 0,1,2 etc. zijn gewoon toegestaan, net zoals mijn-voornaam. Ga je nu echter fetchen met bv. mysql_fetch_array() of mysql_fetch_object(), dan gaat dit hopeloos fout. Je hebt geen idee welke gegevens je nu op het scherm aan het zetten bent, waar de foutmeldingen vandaan komen, etc. etc. Het slaat echt helemaal nergens op!

Tevens krijg je nu de mogelijkheid om extra tikfouten te maken, backtic vergeten, wat ook niet echt bevordelijk is voor de productiviteit. Of je moet per karakter worden betaald in het kader van 'Meer == beter'.

Kortom, gooi die zooi weg en vergeet dat je het ooit hebt gebruikt. Je hebt het NOOIT nodig, tenzij je problemen wilt hebben.
 
Ferdy

Ferdy

13/04/2007 15:09:00
Quote Anchor link
Bedankt, gelukkig dat ik mn queries laat maken door mn objecten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.