Индекс базы данных — это структура данных, которая улучшает скорость операций в таблице. Индексы могут быть созданы с использованием одного или нескольких столбцов, что обеспечивает основу для быстрого поиска в случайном порядке и эффективного упорядочения доступа к записям.
При создании индекса следует учитывать, что все столбцы будут использоваться для создания SQL-запросов и создания одного или нескольких индексов для этих столбцов.
Практически индексы также являются типом таблиц, которые сохраняют поле первичного ключа или индекса и указатель на каждую запись в фактическую таблицу.
Пользователи не могут видеть индексы, они просто используются для ускорения запросов и будут использоваться поисковой системой базы данных для быстрого поиска записей.
Операторы INSERT и UPDATE занимают больше времени на таблицах с индексами, тогда как операторы SELECT быстро обновляются в этих таблицах. Причина в том, что при вставке или обновлении базе данных необходимо вставить или обновить значения индекса.
Команда ALTER для добавления и удаления INDEX
Существует четыре типа операторов для добавления индексов в таблицу —
- ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) — этот оператор добавляет PRIMARY KEY , что означает, что индексированные значения должны быть уникальными и не могут быть NULL.
- ALTER TABLE tbl_name ADD UNIQUE index_name (column_list)— этот оператор создает индекс, для которого значения должны быть уникальными (за исключением значений NULL, которые могут появляться несколько раз).
- ALTER TABLE tbl_name ADD INDEX index_name (column_list) — добавляет обычный индекс, в котором любое значение может отображаться более одного раза.
- ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) — создает специальный индекс FULLTEXT, который используется для поиска текста.
Следующий код-блок является примером добавления индекса в существующую таблицу.
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
Вы можете удалить любой ИНДЕКС, используя предложение DROP вместе с командой ALTER.
Попробуйте следующий пример, чтобы удалить указанный выше индекс.
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
Вы можете удалить любой ИНДЕКС, используя предложение DROP вместе с командой ALTER.
Команда ALTER для добавления и удаления ПЕРВИЧНОГО КЛЮЧА
Вы также можете добавить первичный ключ таким же образом. Но убедитесь, что первичный ключ работает с столбцами, которые не являются NULL.
Следующий код-блок является примером добавления первичного ключа в существующую таблицу. Сначала это сделает столбец NOT NULL, а затем добавит его в качестве первичного ключа.
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
Вы можете использовать команду ALTER для удаления первичного ключа следующим образом:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Чтобы удалить индекс, который не является PRIMARY KEY, вы должны указать имя индекса.