Categories: Шпаргалки

Работа с индексами в MySQL и MariaDB

Индексы позволяют оптимизировать работу с базой — данные сортируются и СУБД не приходится искать значения среди всех записей. На практике, это может сократить время обработки запросов на несколько порядков.

Данная инструкция применима по отношению как к MySQL , так и MariaDB . В примерах будет использоваться таблица с названием table_test и индекс с названием index_test .

Для больших таблиц не создавайте индексы при помощи phpMyAdmin или других веб-инструментов, так как по умолчанию, интерпретатор PHP настроен на ограниченное время обработки скрипта, а процесс создания индекса может затянуться. Это может привести к потери данных.

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

Командная оболочка

Заходим в командную оболочку MySQL или MariaDB:

# mysql -uroot -p

* под учетной записью root с запросом пароля.

Выбираем базу, с которой будем работать:

mysql> use base1

* выбрана база с именем base1

Посмотреть индексы

Прежде чем начать, стоит убедиться в отсутствии индексов, чтобы не создать дубли (инструкция if not exists не работает для create index).

Увидеть имеющиеся индексы:

SHOW INDEX FROM table_test;

Простой индекс

Применяется для ускорения выборки данных.

Вводим следующую команду для создания простого индекса:

mysql> CREATE INDEX index_test ON table_test (name);

* в данном примере создан простой индекс, ускоряющий выборку данных, с именем index_test для поля name таблицы table_test

Для его удаления:

mysql> DROP INDEX index_test ON table_test;

Полнотекстовый поиск

Необходим для поиска данных с помощью функции MATCH. Индекс создается для таблиц типа «MyISAM» и полей с типом «text».

Создаем:

mysql> CREATE FULLTEXT INDEX index_test ON table_test (name);

Удаляем:

mysql> DROP INDEX index_test ON table_test;

Уникальный индекс

Обеспечит уникальность данных для проиндексированного поля.

Создание:

mysql> CREATE UNIQUE INDEX index_test ON table_test (name);

Удаление:

mysql> DROP INDEX index_test ON table_test;

phpMyAdmin

Способ более удобный, но, как сказано выше, его не стоит применять в продуктивной среде.

Заходим в phpMyAdmin — выбираем базу данных и таблицу — переходим на вкладку Структура :

В правой части кликаем по необходимому индексу для его создания:

Для удаление в том же разделе Структура кликаем по Индексы и в раскрывшемся списке удаляем индекс:

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago