In my database, there is table called
DATE_FORMAT(`Profile`.`birthday`, "%m-%d") >= '05-24'
AND DATE_FORMAT(`Profile`.`birthday`, "%m-%d") < '06-07'
the reason is that you use a FUNCTION on a field in WHERE. This means that MySQL must read all Records of the Table (FULL TABLE SCAN).
You can add a new field birthday2 where you store only day and month with a normalized year like
UPDATE yourTable set birthday2 = DATE_FORMAT(Profile.birthday, "%m-%d-0001");
Ten you can select like
SELECT * from yourTable WHERE birthday2 BETWEEN ''05-24-0001' AND '06-07-001';
And if you set a index on this field it will be used