Usa DAYOFWEEK nella tua query, qualcosa come:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
Qui troverai tutte le informazioni per i sabati di maggio.
Per ottenere le letture più veloci memorizza un campo denormalizzato che è il giorno della settimana (e quant'altro ti serva). In questo modo puoi indicizzare le colonne ed evitare scansioni complete della tabella.
Prova prima quanto sopra per vedere se è adatto alle tue esigenze e, in caso contrario, aggiungi alcune colonne extra e archivia i dati in scrittura. Fai solo attenzione alle anomalie di aggiornamento (assicurati di aggiornare la colonna day_of_week se modifichi event_date).
Nota che i campi denormalizzati aumenteranno il tempo impiegato per eseguire le scritture, aumenteranno i calcoli in scrittura e occuperanno più spazio. Assicurati di aver davvero bisogno del vantaggio e di poter misurare che ti aiuta.