Индексы в MySQL: как найти индекс таблицы?

Индексы с использованием MySQL WorkBench База данных

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

Индексы с использованием MySQL WorkBench

Индексы с использованием MySQL WorkBench

 

Во-первых, запустите MySQL Workbench и подключите его к корневой базе данных.

Мы будем создавать новую таблицу «контакты» в базе данных «данные» с разными столбцами в ней. У нас есть один первичный ключ и один столбец UNIQUE key в этой таблице, например id и адрес электронной почты. Здесь вы должны пояснить, что вам не нужно создавать индексы для столбцов UNIQUE и PRIMARY. База данных автоматически создает индексы для столбцов обоих типов. Таким образом, мы создадим индекс phone для столбца phone и индекс name для столбцов first_name и last_name. Выполните запрос, используя мигающий значок на панели задач.

мигающий значок на панели задач

Из вывода видно, что таблица и индексы созданы.

Из выводИз вывода видно, что таблица и индексы созданыа видно, что таблица и индексы созданы

Теперь перейдите к панели схемы. В списке «Таблицы» вы можете найти только что созданную таблицу.

Теперь перейдите к панели схемы

Давайте попробуем команду SHOW INDEXES, чтобы проверить индексы для этой конкретной таблицы, как показано ниже в области запроса, используя значок flash.

Давайте попробуем команду SHOW INDEXES

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

Это окно появится сразу

Индексы с использованием оболочки командной строки MySQL

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

Откройте клиентскую оболочку командной строки MySQL

Пример 1

Предположим, что у нас есть таблица order1 в схеме order с некоторыми столбцами, имеющими значения, как показано на изображении. Используя команду SELECT, мы должны получить записи «order1».

> SELECT * FROM data.order1;

Предположим, что у нас есть таблица order1 

Поскольку мы еще не определили индексы для таблицы order1, угадать невозможно. Итак, мы попробуем использовать команду SHOW INDEXES или SHOW KEYS для проверки индексов следующим образом:

>> SHOW KEYS FROM order1 IN data;

Вы можете понять, что таблица order1 имеет только 1 столбец первичного ключа из приведенных ниже выходных данных. Это означает, что индексы еще не определены, поэтому для столбца «id» первичного ключа отображаются только записи с одной строкой.

Вы можете понять, что таблица order1 имеет только

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

>> SHOW INDEXES FROM data.order1 WHERE VISIBLE = ‘NO;

Давайте проверим индексы для любого столбца в таблице order1

Теперь мы создадим несколько УНИКАЛЬНЫХ индексов для таблицы order1. Мы назвали этот УНИКАЛЬНЫЙ ИНДЕКС как ’rec’ и применили его к 4 столбцам: id, Region, Status и OrderNo. Для этого попробуйте следующую команду.

>> CREATE UNIQUE INDEX rec ON data.order1 (id, Region, Status, OrderNo);

Теперь мы создадим несколько УНИКАЛЬНЫХ

Теперь посмотрим на результат создания индексов для конкретной таблицы. Результат приведен ниже после использования команды SHOW INDEXES. У нас есть список всех созданных индексов с одинаковыми именами «rec» для каждого столбца.

>> SHOW INDEXES FROM order1 IN data;

Теперь посмотрим на результат создания индексов для конкретной таблицы

Пример 2

Предположим, что новая таблица «student» в базе данных «data» с полями с четырьмя столбцами имеет несколько записей. Получите данные из этой таблицы с помощью запроса SELECT следующим образом:

>> SELECT * FROM data.student;

Предположим, что новая таблица

Давайте сначала извлечем индексы столбцов первичного ключа, попробовав приведенную ниже команду SHOW INDEXES.

>> SHOW INDEXES FROM data.student WHERE Key_name = ‘PRIMARY’;

Вы можете видеть, что он выведет индексную запись для единственного столбца, имеющего тип PRIMARY из-за предложения WHERE, используемого в запросе.

Вы можете видеть, что он выведет индексную запись для единственного столбца

Давайте создадим один уникальный и один неуникальный индекс для разных столбцов таблицы «student». Сначала мы создадим УНИКАЛЬНЫЙ индекс ’std’ в столбце ’Имя’ таблицы ’student’, используя команду CREATE INDEX в клиентской оболочке командной строки, как показано ниже.

>>  CREATE UNIQUE INDEX std ON data.student ( Name );

Давайте создадим один уникальный и один неуникальный

Давайте создадим или добавим неуникальный индекс в столбец «Тема» таблицы «студент» при использовании команды ALTER. Да, мы использовали команду ALTER, потому что она используется для изменения таблицы. Итак, мы изменили таблицу, добавив индексы к столбцам. Итак, давайте попробуем выполнить приведенный ниже запрос ALTER TABLE в оболочке командной строки, добавив индекс stdSub в столбец Subject.

>> ALTER TABLE data.student ADD INDEX stdSub ( Subject );

в оболочке командной строки, добавив индекс

Теперь настала очередь проверить недавно добавленные индексы в таблице «student» и ее столбцах «Name» и «Subject». Попробуйте выполнить команду ниже, чтобы проверить это.

>>  SHOW INDEXES FROM data.student;

Из выходных данных вы можете видеть, что запросы присвоили неуникальный индекс столбцу «Тема» и уникальный индекс столбцу «Имя». Вы также можете увидеть названия индексов.

Из выходных данных вы можете видеть

Давайте попробуем команду DROP INDEX, чтобы удалить индекс stdSub из таблицы student.

>> DROP INDEX stdSub ON data.student;

Давайте попробуем команду DROP INDEX

Давайте посмотрим на оставшиеся индексы, используя ту же инструкцию SHOW INDEX, как показано ниже. Теперь у нас остались только два индекса в таблице «student», как показано ниже.

>> SHOW INDEXES FROM data.student;

Давайте посмотрим на оставшиеся индексы

Заключение

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

Читайте также:  Тип данных и функции PostgreSQL JSON
Оцените статью
bestprogrammer.ru
Добавить комментарий