Привет,1. Чем меньше полей в WHERE клаузе, тем быстрее. Так что не разбивайте дату на куски.
2. MySQL-у почти все равно будет ли дата в timestamp или в datetime. Я лично предпочитаю второе, легче на консоли работать.
3. Скорость запроса будеть несколько зависеть от общего количества записей, но если у вас иднекс по данному полю и если запрос типа "больше чего-то и меньше того-то", то количество записей не сыграет особой роли.
4. несколько миллионов записей - это маленькая таблица, перестраивать базу нет смысла. Ваш запрос должен быть отработан в любом случае не более, чем за секунду. Пример: на машине с P4/3GHz при собственной загрузке CPU другими процессами примерно на 50%, извлечение данных с таким правилом из таблицы с ок. 3 миллионами записей занимает 0.5-1.5 секунды.
WWell,