Gebruik DAYOFWEEK in uw zoekopdracht, zoiets als:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
Hier vindt u alle informatie voor de zaterdagen in mei.
Om de snelste uitlezingen te krijgen sla een gedenormaliseerd veld op dat de dag van de week is (en wat je nog meer nodig hebt). Op die manier kunt u kolommen indexeren en volledige tabelscans vermijden.
Probeer het bovenstaande eerst om te zien of het aan uw behoeften voldoet en zo niet, voeg dan wat extra kolommen toe en sla de gegevens op tijdens het schrijven. Pas op voor updateafwijkingen (zorg ervoor dat u de kolom day_of_week bijwerkt als u event_date wijzigt).
Houd er rekening mee dat de gedenormaliseerde velden de tijd die nodig is om te schrijven vergroten, de berekeningen bij het schrijven vergroten en meer ruimte in beslag nemen. Zorg ervoor dat je het voordeel echt nodig hebt en meet of het je helpt.