Я пытаюсь оптимизировать относительно большую таблицу mysql (myisam) с 220 000 строк. Сам стол не такой большой - около 23,5 МБ. Итак, в чем реальная проблема? - я получил запрос, как это:
SELECT * FROM table WHERE DATE_FORMAT(date_field, '%m%d') = '1128' LIMIT 10
Я пытался установить индекс для поля date_field, но EXPLAIN показывает, что индекс вообще не использовался ... я думаю, это не так странно из-за DATE_FORMAT (). Итак, я планирую добавить еще один столбец, который будет содержать даты как «% m% d», и поместить в него индекс. Единственная причина, по которой я не хочу этого делать, заключается в дублировании данных.
Кстати, я использую поле date_field - поле даты рождения, и я уверен, что мне всегда нужно поле date_ как% Y-% m-% d или просто% m% d
У вас есть лучшее предложение о том, как оптимизировать запрос выше? Заранее спасибо !!!
Некоторая информация:
Версия MySQL: 5.0.51b-log
ОС: slackware 12.1
Процессор: Pentium III (Coppermine) при 996,783 МГц
Оперативная память: 512 МБ DDR
Жесткий диск: 80 ГБ SATA
P.S Я попытался добавить еще один столбец, содержащий даты как% m% d. Результаты очень хорошие, но мне все еще не нравится этот подход. Я жду больше предложений!