Может кто-нибудь порекомендовать хороший учебник по индексам MySQL, особенно если он используется в предложении order by во время объединения? [закрыто]

Я мог бы попытаться опубликовать и объяснить точный запрос, который я пытаюсь выполнить, но я иду по старой поговорке: «дай человеку рыбу, и он будет есть один день, научи человека ловить рыбу, и он я буду есть всю оставшуюся жизнь Оптимизация SQL кажется очень специфичной для запроса, и даже если бы вы могли решить этот конкретный запрос для меня, мне придется написать еще много запросов в будущем, и я хотел бы узнать, как работают индексы в общем.

Тем не менее, вот краткое описание моей текущей проблемы. У меня есть запрос, который объединяет три таблицы и выполняется за 0,2 секунды. Потрясающие. Я добавляю предложение "order by", и оно выполняется за 4 минуты и 30 секунд. Sucky. Я денормализовал одну таблицу, чтобы было меньше соединений, везде добавляю индексы, и теперь запрос выполняется за ... 20 минут. Что за черт? Наконец, я вообще не использую соединение, а подзапрос с «где id в (...) порядке», и теперь он выполняется за 1,5 секунды. Довольно прилично. Что, во имя Бога, происходит? Я чувствую, что если бы я на самом деле понимал, что делают индексы, я мог бы написать действительно хороший SQL.

Кто-нибудь знает хорошие уроки? Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос