Использование INDEX
Вы можете ограничить рассматриваемые индексы с помощью опции USE INDEX.
Синтаксис
USE INDEX [{FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])
Описание
По умолчанию используется 'FOR JOIN', что означает, что подсказка влияет только на оптимизацию условия WHERE.
USE INDEX используется после имени таблицы в предложении FROM.
USE INDEX не может использовать исключённый индекс — он будет обрабатываться так, как будто его не существует.
Префиксы индексов
При использовании подсказок индексов (USE, FORCE или IGNORE INDEX) имя индекса также может быть недвусмысленным префиксом имени индекса.
Пример
CREATE INDEX Name ON City (Name); CREATE INDEX CountryCode ON City (Countrycode); EXPLAIN SELECT Name FROM City USE INDEX (CountryCode) WHERE name="Helsingborg" AND countrycode="SWE";
Это даёт:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE City ref CountryCode CountryCode 3 const 14 Using where
Если бы мы не использовали USE INDEX, индекс Name был бы в возможных ключах.
См. также
- Подсказки индексов: Как принудительно задать планы запросов для получения дополнительных сведений
- IGNORE INDEX
- FORCE INDEX
- Исключённые индексы
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется компанией MariaDB предварительно. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/use-index/