Я настроил свою таблицу с индексом только для done_status (done_status = INT):
Когда я использую:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
Я получаю это обратно:
id select_type тип таблицы возможных_ключей ключ key_len ref строки Дополнительно 1 ПРОСТОЕ напоминание ВСЕ done_status NULL NULL NULL 5 Использование где
Но когда я выдаю эту команду:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
Я получаю следующее возвращаемое:
id select_type тип таблицы возможных_ключей ключ key_len ref строки Дополнительно 1 ПРОСТОЕ напоминание ref done_status done_status 4 const 2
Это EXPLAIN
показывает мне, что он использует 5 строк, второй раз 2 строки.
Я не думаю, что индекс используется, если я правильно понял его в первый раз, он должен дать мне 3 строки. Что я делаю не так?
SHOW INDEX FROM reminder
:
Таблица Non_unique Key_name Seq_in_index Столбец_name Сортировка Количество элементов Sub_part Упакованный нуль Index_type Комментарий Index_comment напоминание 1 done_status 1 done_status A 5 NULL NULL BTREE
объяснить расширенный:
id select_type тип таблицы возможных_ключей ключ key_len ref строки, отфильтрованные Extra 1 ПРОСТОЕ напоминание ref done_status done_status 4 const 2 100.00
show warnings
не проявил ничего интересного