MySQL query benchmarking
We komen allemaal wel is op het punt de we bijvoorbeeld de prestaties van een bepaalde query willen meten. Hiervoor zijn verschillende methodes, helemaal wanneer je gebruik maakt van Zend Framework’s Database Abstraction Layer, bijvoorbeeld met behulp van de ingebouwde query profiler.
Een langer artikel over het optimaliseren van queries volgt binnenkort echter het volgende wil ik vast met jullie delen.
Mocht je je afvragen waarom bepaalde queries de eerste keer dat ze worden uitgevoerd zolang duren en vervolgens een stuk korter duren, dat wordt meestal veroorzaakt door de in MySQL ingebakken query cache. Voor een goede meting is het dus nodig deze query cache te herinitialiseren bij elke teste / meting. Dit kan met behulp van het volgende statement:
RESET QUERY CACHE
Op die manier krijg je betrouwbare resultaten uit je metingen. Echter geheel betrouwbaar zijn ze nog niet, de tijd die een query in beslag neemt is bijvoorbeeld ook nog afhankelijk van het feit of MySQL een tabel reeds geopend heeft, en misschien is er (bijvoorbeeld op UNIX systemen) nog wel een tussenlaag in het besturingssysteem die bepaalde gegevens cachet. Hoe dan ook maakt bovenstaand statement de boel een stuk betrouwbaarder!

Leave a Reply