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

Почему mysql использует разные индексы?

Смотрел сегодня slow_log у mysql и заметил там несколько странных запросов, скормив их базе повторно увидел что запрос выполняется более 4х секунд, но на сайте подобного нету, в том месте где данный запрос выполняется все летает.
Решил проверить запрос через explain и заметил что используется не тот индекс
Для запроса
explain SELECT `id`,`name`,`description` FROM photocat WHERE `parent_id` = '2553677' ORDER BY `inserted` DESC  LIMIT 0,5

Выдает
id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|
1|SIMPLE|photocat|index|parent_id,com_i_p_t_i|inserted|8|NULL|2487
Using where

А для
explain SELECT `id`,`name`,`description` FROM photocat WHERE `parent_id` = '2834020' ORDER BY `inserted` DESC  LIMIT 0,5

id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|
1|SIMPLE|photocat|index|parent_id,com_i_p_t_i|com_i_p_t_i|5|const|74
Using where; Using filesort

Чем вызвано такое поведение? и как можно нормализовать его?
  • Вопрос задан
  • 2424 просмотра
Подписаться 3 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Стоит попробовать сделать индекс под конкретно этот запрос

KEY `parent_id_inserted` (`parent_id`, `inserted`),
Ответ написан
Ваш ответ на вопрос

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

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