Оптимизация индекса MySQL - PullRequest
2 голосов
/ 09 июля 2011

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

Я искал вокруг, но не мог ничего найти. Конечно, если оптимизация запроса / индекса просто следует за набором шагов, то кто-то должен был написать приложение, чтобы автоматизировать его для данного запроса ... или я не ценю сложности, связанные с этим?

Ответы [ 3 ]

1 голос
/ 09 июля 2011

Хорошо, я могу предложить учебник по индексированию SQL .Дайте нам знать, если вам удастся автоматизировать;)

Не совсем уверен насчет MySQL, но есть инструменты для Oracle и SQL Server.Они охватывают тривиальные случаи, но имеют тенденцию давать ложное чувство безопасности относительно нетривиальных случаев.Они также не рассматривают общую рабочую нагрузку как волю, они обычно ограничиваются предложением индексов для конкретных операторов.

0 голосов
/ 09 июля 2011

Существуют инструменты , которые могут с указанным журналом запросов показать, какие индексы не используются, и вы можете, включив ведение журнала запросов, которые не используют индекс, узнать, какие нужныиндекс.Проблема в том, что индексы дороги, и вы не можете просто индексировать все, и какие индексы вам нужны, зависит от ваших запросов.

0 голосов
/ 09 июля 2011

Если бы все было так просто, у вас был бы автоматический построитель индексов в MySQL.

На самом деле в MySQL встроен оптимизатор запросов, и он прозрачно переписывает ваши запросы в наиболее оптимальную форму, прежде чем выполнять их,Хотя это не всегда хорошо работает и имеет свои причуды.Знание этого помогает избежать некоторых распространенных ошибок (например, использование зависимых подзапросов)

...