Сенсей
Новичок
Вытаскивание юзеров у кого сегодня день варенья. Несколько решений...
Не, просить написать не буду
Тут вот какая итересная штука...
Я юзал
Оно работает... а ... тут сегодня попробовал -
Тоже работает но, на 15K записей в базе ПЕРВЫЙ запрос выполняется за ~0.50sec а ВТОРОЙ запрос за ~0.30sec
Разница огромная.
1 - Какие еще идеи будут по комбинированию функций работы с датой дабы ускорить этот процесс?
2 - Кто то может мне объяснить почему это происходит в данном случае?
3 - Количество юзеров растет с каждым днем... хотелось бы юзать индексы при определении тех у кого сегодня день варенья... а то сейчас база проходит по всем 15k записям (explain показал)
Я вижу рещение - разделить год месяц и день рождения на разные поля...т и сделать индекс по каждому... я правильно мыслю?
Не, просить написать не буду

Тут вот какая итересная штука...
Я юзал
PHP:
select user_id, user_login, (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(user_last_visit))/60, user_hidden from users where DATE_FORMAT(CONVERT_TZ(user_birth_day, '-05:00', '+02:00'), '%m-%d')=DATE_FORMAT(CONVERT_TZ(CURDATE(), '-05:00', '+02:00'), '%m-%d') order by user_id DESC;
PHP:
select user_id, user_login, (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(user_last_visit))/60, user_hidden from users where MONTH(CONVERT_TZ(user_birth_day, '-05:00', '+02:00')) = MONTH(CURDATE()) AND DAYOFMONTH(CONVERT_TZ(user_birth_day, '-05:00', '+02:00')) = DAYOFMONTH(CURDATE());
Разница огромная.
1 - Какие еще идеи будут по комбинированию функций работы с датой дабы ускорить этот процесс?
2 - Кто то может мне объяснить почему это происходит в данном случае?
3 - Количество юзеров растет с каждым днем... хотелось бы юзать индексы при определении тех у кого сегодня день варенья... а то сейчас база проходит по всем 15k записям (explain показал)
Я вижу рещение - разделить год месяц и день рождения на разные поля...т и сделать индекс по каждому... я правильно мыслю?