Учебник MySQL Index – создание, добавление и удаление

Что такое индекс?

Никто не любит медленные системы.

Высокая производительность системы имеет первостепенное значение практически для всех систем баз данных.

Большинство компаний вкладывают значительные средства в аппаратное обеспечение, так что данные могут быть быстрее и эффективнее.

Но есть ограничения на инвестиции в оборудование, которые может сделать бизнес.

Оптимизация базы данных – это более дешевое и лучшее решение.

С этой целью мы можем использовать INDEXES.

  • Медленность в времени отклика обычно связана с тем, что записи хранятся случайным образом в таблицах базы данных.
  • Запросы поиска должны циклически перебирать все случайно записанные записи один за другим, чтобы найти нужные данные.
  • Это приводит к плохой производительности баз данных, когда дело доходит до получения данных из больших таблиц
  • В таких ситуациях удобны индексы. Индексы сортируют данные упорядоченным последовательным способом. Принимая во внимание индекс как отсортированный в алфавитном порядке список. Легче искать имена, отсортированные в алфавитном порядке, чем те, которые не отсортированы.
  • INDEX создаются в столбце (столбцах), который будет использоваться для фильтрации данных.
  • Использование индексов в таблицах, которые часто обновляются, может привести к низкой производительности. Это связано с тем, что MySQL создает новый индексный блок каждый раз, когда данные добавляются или обновляются в таблице. Как правило, индексы должны использоваться в таблицах, данные которых не часто меняются, но часто используются в выборе поисковых запросов.

Создать базовый синтаксис индекса

Индексы могут быть определены двумя способами

  1. Во время создания таблицы
  2. После того, как таблица создана

Пример:

Для нашего myflixdb мы ожидаем много запросов к базе данных на полное имя.

Мы добавим столбец “full_names” в Index в новую таблицу “members_indexed”.

Сценарий, показанный ниже, помогает нам достичь этого.

Выполните вышеупомянутый SQL-скрипт в workbench MySQL против “myflixdb”.

Обновление myflixdb показывает вновь созданную таблицу с именем members_indexed.

“ Примечание ” В таблице members_indexed есть “full_names” в узле индексов.

По мере расширения базы участников и увеличения количества записей поисковые запросы в таблице members_indexed, использующие предложения WHERE и ORDER BY, будут намного быстрее по сравнению с теми, которые были выполнены в таблице участников без указателя.

Добавить базовый синтаксис индекса

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

Мы можем использовать следующий запрос для добавления индекса

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

Выполнение вышеуказанного запроса создает индекс в поле заголовка в таблице фильмов.

Это означает, что все поисковые запросы в таблице фильмов с использованием “title” будут быстрее.

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

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

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

Давайте теперь посмотрим на все индексы, определенные в таблице фильмов в myflixdb.

Выполнение приведенного выше сценария в workbench MySQL для myflixdb дает нам следующие результаты, показанные ниже.

Обратите внимание, что первичный и внешний ключи в таблице уже были проиндексированы MySQL. Каждый индекс имеет свое собственное уникальное имя, а также показывает столбец, на котором он определен.

Основной синтаксис индекса индекса

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

Бывают случаи, когда вы уже определили индекс в таблице, которая часто обновляется. Вы можете удалить индексы на такой таблице, чтобы улучшить производительность запросов UPDATE и INSERT. Основной синтаксис, используемый для удаления индекса в таблице, выглядит следующим образом.

Давайте посмотрим на практический пример.

Выполнение указанной команды отменяет индекс с id full_names из таблицы members_indexed.

Резюме

  • Индексы очень эффективны, когда дело доходит до значительного улучшения производительности поисковых запросов MySQL.
  • Индексы могут быть определены при создании таблицы или добавлены позже после того, как таблица уже создана.
  • Вы можете определить индексы более чем на один столбец таблицы.
  • SHOW INDEX FROM table_name используется для отображения определенных индексов в таблице.
  • Команда DROP используется для удаления определенного индекса в данной таблице.
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *