Я использую, объясняют для тестирования этих запросов. Типом седла является ДАТА
это использует индекс:
explain SELECT events.* FROM events WHERE events.date = '2010-06-11'
это не делает
explain SELECT events.* FROM events WHERE events.date >= '2010-06-11'
индексируйте следующим образом (phpmyadmin)
Action Keyname Type Unique Packed Field Cardinality Collation Null Comment
Edit Drop PRIMARY BTREE Yes No event_id 18 A
Edit Drop date BTREE No No date 0 A
я замечаю, что кардинальность 0, хотя существуют некоторые строки с той же датой..
Если MySQL не использует индекс, он видел ваш запрос и оценил, что сканирование таблицы, вероятно, будет быстрее, чем использование индекса (с точки зрения необходимых операций ввода-вывода/диска). Вы можете использовать FORCE INDEX
и проверить, будет ли этот запрос действительно быстрее при использовании индекса или нет.
SELECT events.* FROM events
FORCE INDEX (date)
WHERE events.date >= '2010-06-11';