Что такое индекс MySQL и как его использовать?

Что такое индекс MySQL и как его использовать?

12206
Простыми словами индекс, создается на поле в таблице по которому происходит поиск. Тем самым ускоряя скорость поиска в разы.

Индексы – это специальные объекты базы данных MySQL, которые позволяют существенно увеличить скорость выполнения запроса по поиску значений из таблиц БД. MySQL index это определенная структура, в которой хранятся значения одного или нескольких столбцов таблицы в виде идексного кода, в котором есть ссылки на строки со значениями. Для хранения индексов преимущественно используются бинарные деревья BTREE, поэтому поиск занимает не много места.

При техническом аудите сайта первое на что нужно обратить внимание - это созданы ли индексы для полей участвующих в соединениях таблиц по INNER JOIN, LEFT JOIN, RIGHT JOIN и для полей по которым осуществляется поиск: name, phone, ... .


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

Поскольку индекс занимает место, то индексировать нужно только те поля, по которым происходит выборка. Поэтому индексировать есть смысл только определенные поля таблицы.

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

Поэтому доверяйте разработку веб сайта - профессионалам!
Использование одного составного индекса вместо нескольких простых для ускорения наиболее активно использующихся запросов также ускорит скорость работы базы, особенно при работе с объединениями таблиц join по неиндексированным полям. Пример таблицы:

Поле id - уже имеет индекс в качестве первичного ключа

Если вам нужен поиск по имени полю "name", такого типа:


Тогда есть смысл добавить индекс по данному полю "name", что значительно ускорит выборку.


SQL запрос создания индекса:

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

Вывод менеджера для создания индексов в таблицах MySQL

Выбор поля для создания индекса MySQL

Указание названия индекса и сохранение индекса в таблице MySQL

Помогла ли вам статья?
347 раз уже помогла
Комментарии: (0)

КАТЕГОРИИ

РЕГИОНЫ