Explain vraagjes of bepaalde waarden vanuit de db ok zijn
hier een vraagje of iemand kan helpen met beoordeling van de uitkomst van explain select scripts.
hier bijv. is dit goed of moet hier nog veel aan gedaan worden???
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
EXPLAIN SELECT poster.poster_id, poster.gebruikersnaam, song.poster_id, song.song_id, song.songnaam, song.datumgepost, song.songtekst, COUNT( song.poster_id ) aantal_songs
FROM poster
LEFT JOIN song ON ( poster.poster_id = song.poster_id )
WHERE song.datumgepost > '$DAT1'
GROUP BY poster.poster_id
ORDER BY aantal_songs DESC
LIMIT 9
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE song ALL NULL NULL NULL NULL 1944 Using where; Using temporary; Using filesort
1 SIMPLE poster ref poster_id poster_id 2 gitaartabs.song.poster_id 13 Using where
?>
EXPLAIN SELECT poster.poster_id, poster.gebruikersnaam, song.poster_id, song.song_id, song.songnaam, song.datumgepost, song.songtekst, COUNT( song.poster_id ) aantal_songs
FROM poster
LEFT JOIN song ON ( poster.poster_id = song.poster_id )
WHERE song.datumgepost > '$DAT1'
GROUP BY poster.poster_id
ORDER BY aantal_songs DESC
LIMIT 9
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE song ALL NULL NULL NULL NULL 1944 Using where; Using temporary; Using filesort
1 SIMPLE poster ref poster_id poster_id 2 gitaartabs.song.poster_id 13 Using where
?>
en nog een andere:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
EXPLAIN SELECT aantaldownload_maand, song_id
FROM downloads
WHERE datumdownload_maand = '$maandnu'
ORDER BY aantaldownload_maand DESC
LIMIT 10
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE downloads ALL NULL NULL NULL NULL 1986 Using where; Using filesort
?>
EXPLAIN SELECT aantaldownload_maand, song_id
FROM downloads
WHERE datumdownload_maand = '$maandnu'
ORDER BY aantaldownload_maand DESC
LIMIT 10
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE downloads ALL NULL NULL NULL NULL 1986 Using where; Using filesort
?>
hopelijk kan iemand hierover iets zeggen
alvast thanx
De 2e query is wat vreemd, een maand is normaal gesproken onderdeel van een datum, het wordt echter niet als datum opgeslagen. Wanneer je ook een jaartal en/of dag opslaat, dan zul je dit echt moeten aanpassen.
Een index op de maand zal de boel aanzienlijk kunnen versnellen, zowel de WHERE als het sorteren zullen hier flink van profiteren. De filesort hoort dan ook te verdwijnen in de verklaring van de query. Filesort is een indicator dat er niet optimaal wordt gewerkt.
De 1e query heb ik niet verder geanalyseerd, die zul je eerst opnieuw moeten opstellen.
Edit: Hij is leuk! Ik wilde waarschijnlijk iets anders zeggen, maar dat kwam er niet helemaal uit
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Quote:
Overbetrouwbare? Dat lijkt me alleen maar prima >:) Of bedoel je soms onbetrouwbare? Tijd om weer eens naar Nederland te gaan en je kennis van de Nederlandse taal bij te spijkeren Frank, uiteraard tijdens een meeting :Poverbetrouwbare
Overigens is mij afgelopen weekend tijdens de workshop van PHPFREAKZ aangeraden niet teveel op EXPLAIN te vertrouwen, maar ook zeker de snelheid van de (diverse mogelijke) query('s) te meten. Dit omdat EXPLAIN soms aangeeft dat query 1 extreem veel zou moeten doorzoeken, terwijl query 2 volgens EXPLAIN een stuk sneller zou moeten zijn. In de praktijk blijkt dan dat query 1 soms toch véél sneller is.
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith