Задать вопрос

Как заставить использовать индекс в сортировке?

Входные данные: MySQL 5.7, таблица действий юзеров (InnoDB), больше миллиона записей, создано разбиение на разделы по HASH(user_id).
Есть запрос вида:
select * from `user_logs` where `user_id` = 189 AND `tt_in_line` = 1 order by `created_at` DESC limit 1;

Поле "created_at" типа datetime.
Также созданы индексы:
CREATE INDEX `full_ndx` (`user_id`, `tt_in_line`, `created_at`) USING BTREE;
CREATE INDEX `short_ndx` (`user_id`, `created_at`) USING BTREE;


Но почему-то запрос не использует индекс "full_ndx", а вместо него использует "short_ndx":
de77bcb54.png

Что я делаю не так при составлении индексов или я упустил какой-то механизм работы в данной версии MySQL?
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы