select birthday,username,shortname,userid from user where userid in (список_id_избранных) and MONTH(user.birthday)=12 and DAYOFMONTH(user.birthday)=19 order by username

Time before: 3.07736992836

Time after: 3.2483649253845



Это - вывод на главной странице избранных, у которых сегодня день рождения. Запрос выполняется по всей таблице пользователей, которая достаточно большая. Соответственно, большое и время выполнения запроса.



Создать виртуальную таблицу в оперативной памяти, каждый день перекидывать туда нужные поля таблицы user для пользователей, у которых день рождения, запросы делать только к этой виртуальной таблице?