Поиск по сайту:

В доме без жильцов — известных насекомых не обрящешь (К. Прутков).

Как и когда создавать индекс в MySQL

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
6 июня 2021
Как и когда создавать индекс в MySQL
Когда дело доходит до оптимизации производительности баз данных MySQL, создание индексов – один из лучших способов. Индексы SQL помогают повысить производительность базы данных, обеспечивая быстрый доступ к данным, хранящимся в базе данных.

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

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

 

Когда создавать индекс в MySQL?

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

  1. Высокая доступность: если у вас есть таблица или столбец, к которым вы регулярно обращаетесь, вы можете повысить их производительность, создав индекс.
  2. Размер: размер данных, хранящихся в таблице или столбце, также может играть роль при принятии решения о необходимости индекса. Большая таблица может получить больше преимуществ от индексов, чем меньшая таблица.
  3. Ключ индекса: тип данных целочисленного ключа также имеет значение. Например, целое число является гораздо лучшим индексным ключом из-за его небольшого размера.
  4. CRUD-операции: если у вас есть таблица или столбец с большим количеством CRUD-операций, индексирование этой таблицы или столбца может оказаться невыгодным и может отрицательно повлиять на производительность базы данных.
  5. Размер базы данных: индексирование – это структура данных, которая будет занимать место в вашей базе данных, что может быть фактором, особенно в уже больших базах данных.

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

Если вы хотите узнать больше о том, как MySQL использует индексы, рассмотрите возможность чтения ресурса, представленного ниже:

Читать  Как сопоставить значения NULL с другими значимыми значениями

https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html

 

Базовое использование индексов MySQL

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

Чтобы создать индекс в MySQL, мы можем использовать синтаксис, показанный ниже:

CREATE INDEX index_name ON tbl_name (cols);

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

Вы также можете создать индекс при создании таблицы, как показано в синтаксисе ниже:

CREATE TABLE tbl_name (col1, col2, col3, INDEX(col1, col2));
Примечание
Тип индекса MySQL по умолчанию – BTREE, если явно не указано иное.

 

Пример использования

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

Мы будем использовать таблицу фильмов в базе данных сотрудников. Вы можете найти ресурс на странице ресурсов ниже:

https://dev.mysql.com/doc/index-other.html

Во-первых, давайте посмотрим, как MySQL использует закулисный процесс для обработки простого оператора SELECT, в котором пол равен F.

EXPLAIN SELECT emp_no, first_name, last_name FROM employees WHERE gender = 'F';

 

Учитывая размер таблицы и запрашиваемых данных, сканирование более 200 000 строк не очень эффективно. В этом случае мы можем уменьшить это значение, создав индекс.

Чтобы создать индекс, мы можем:

CREATE INDEX gender on employees(gender);

 

После создания индекса MySQL просканирует значения.

 

Заключение

Мы надеемся, что эта статья дала вам более глубокое понимание использования индексов MySQL для повышения производительности базы данных.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться в соц. сетях:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close