Toon posts:

[MySQL] Hoe wordt een query uitgevoerd

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik vraag mij af hoe een query nou precies wordt uitgevoerd.
Je hebt de bijvoorbeeld de volgende query:
code:
1
2
3
SELECT l.leerlingnr,g.naam
FROM leerling AS l, groep AS g
WHERE l.naam LIKE '%bla%' AND l.groepid=g.groepid

Hoe wordt nou precies de WHERE uitgevoerd.
Wordt nou de LIKE als eerste uitgevoerd?

Als dat zo is kun je beter de WHERE omdraaien zodat eerst l.groepid=g.groepid vergelijken zodat LIKE op minder rows moet worden uitgevoerd. (Dat scheelt weer performance)

Ik hoop dat het een beetje duidelijk is. Waarschijnlijk is dit een beetje basic maar kon het niet vinden.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 25-05 22:48

Creepy

Tactical Espionage Splatterer

Kijk eens haar het EXPLAIN commando ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

Dat ligt en beetje aan de query optimizer die de betreffende (R)DBMS gebruikt. Vaak kan een explain wel inzicht geven maar dat is niet altijd voldoende. Een LIKE '%iets%' is altijd behoorlijk traag om dat de gehele table doorlopen moet worden.

buit is binnen sukkel


Verwijderd

Topicstarter
ripexx schreef op 06 mei 2004 @ 11:08:
... Een LIKE '%iets%' is altijd behoorlijk traag om dat de gehele table doorlopen moet worden.
Wordt de LIKE ook nog op de hele tabel uitgevoerd, als je daarvoor l.groepid=g.groepid hebt uitgevoerd?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:53

gorgi_19

Kruimeltjes zijn weer op :9

Zie Creepy :)

Verder zal de like in deze vorm sowieso vertragend werken, omdat er geen gebruik gemaakt kan worden van een index. Aangezien dit in de handleiding terug te vinden is, gaat deze dicht. :)

Verder kan je aan de hand van explain evt. nog verschillende constructies uitproberen en kijken wat de meest optimale query voor MySQL is.

Succes. :)

[ Voor 25% gewijzigd door gorgi_19 op 06-05-2004 11:17 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Dit topic is gesloten.