Подтвердить что ты не робот

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

У меня есть запрос MySQL (работает MySQL 5.0.88), который я пытаюсь ускорить. Базовая таблица содержит несколько индексов и для рассматриваемого запроса используется неверный индекс (i_active - 16 000 строк, а i_iln - 7 строк).

Я не очень разбираюсь в MySQL, но читаю, что есть подсказка use index, которая может заставить mySQL использовать определенный индекс. Я пробую это вот так:

 SELECT art.firma USE INDEX (i_iln)
 ...

но это приводит к ошибке MySQL.

Вопрос:
Может ли кто-нибудь сказать мне, что я делаю неправильно? (За исключением версии 5.0.88, которую я не могу изменить.)

4b9b3361

Ответ 1

Вы пропустили FROM table

Правильный SQL должен быть:

SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....

Ответ 3

иногда с использованием index (index_name) оптимизатор может пойти на сканирование таблицы, если вы используете индекс принудительной подсказки, оптимизатор будет вынужден использовать index, будет идти на сканирование таблицы, только если не осталось способов получить строки с предоставленным индексом.

SELECT art.firma FROM art FORCE INDEX (i_iln);

для более подробной информации о подсказках USE INDEX и FORCE INDEX проверьте эту ссылку

Ответ 4

Выберите Coloumn1, Coloumn2, Coloumn.... FROM TABLE_NAME ИНДЕКС ПОЛЬЗОВАТЕЛЯ (имя_индекса)      ГДЕ Coloumn = "condition";

Если у вас есть правильный индекс, вам не нужно использовать index(). ваш запрос автоматически выбирает правильный index.If ваш запрос медленно после использования индекса thn перепроверять ваш индекс, что-то не так в индексе. спасибо заранее.центр здесь