[linux] Re: mysql & filesort

Casper Gielen casper op dse.nl
Vr Feb 23 14:37:48 CET 2007


Op vrijdag 23 februari 2007, schreef Martijn van Oosterhout:
> >
> > Het punt is dat filesort het eerst in core probeerd, dan 't naar disk
> > schrijft en nog 'n keer probeerd. Dat is dus 2x. Dat is 't probleem.
>
> Lieve help. Dat is dan wel heel erg slecht geschreven. Als de data
> groter dan je geheugen is wordt de data meestal in blokken gesorteerd
> met opslag op de schijf. En dan een mergesort om de blokken te
> combineren. Maar er wordt nooit dubbel gesorteerd. Het zou mij heel erg
> verbazen als MySQL het twee keer deed.
Dit is precies wat mysql doet. Hoeveel hij in het geheugen doet voor hij 
terugvalt op files wordt bepaald door de sort_buffer_size variabele.
Het verschil met een index is dat een index wordt bijgewerkt op het moment dat 
je een tabel aanpast. Als je dan iets met die tabel gaat doen kan hij gebruik 
maken van z'n kant en klare index. Als je geen index hebt moet hij achteraf 
nog eens gaan sorteren.
De naam filesort is misschien wat onhandig gekozen, want het betekent niet dat 
er per-se via de harde-schijf gesorteerd wordt, maar dat het mogelijk is 
indien nodig.

Een index is handig als je relatief veel queries doet, want dan hoef je dan 
minder te sorteren.
Als je echter relatief veel veranderingen aan de tabel aanbrengt kan het 
handiger zijn om geen index te gebruiken, omdat bij iedere wijziging die 
index moet worden bijgewerkt.

-- 
	Casper Gielen
casper op gielen.name, CAPSLOCK2000 op zvdk.nl
--
> Wait a minute! Did you just compare Windows Vista with Ferrari?
It's expensive to own, expensive to fix, and makes you curse like an italian.
						-- eclectro on Slashdot


-- Attached file included as plaintext by Ecartis --

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBF3u49IhQIPPgOSvcRAlvCAKCF0zjBQY1+0bbnevE0cYniMHKA/wCfaCJL
UZRIFgKw0OPdRBmQA4G4loA=
=qj6A
-----END PGP SIGNATURE-----





More information about the Linux mailing list