Учебники

HSQLDB — индексы

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

При создании индекса следует учитывать, какие столбцы будут использоваться для выполнения запросов SQL, а также создавать один или несколько индексов для этих столбцов.

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

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

Операторы INSERT и UPDATE занимают больше времени для таблиц, имеющих индексы, тогда как операторы SELECT работают быстрее в этих таблицах. Причина в том, что при вставке или обновлении база данных также должна вставлять или обновлять значения индекса.

Простой и уникальный индекс

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

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

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

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

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

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

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

Команда 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, который используется для целей текстового поиска.

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, который используется для целей текстового поиска.

Ниже приведен запрос на добавление индекса в существующую таблицу.

ALTER TABLE testalter_tbl ADD INDEX (c);

Вы можете удалить любой ИНДЕКС, используя предложение DROP вместе с командой ALTER. Ниже приведен запрос на удаление созданного выше индекса.

ALTER TABLE testalter_tbl DROP INDEX (c);

Отображение информации INDEX

Вы можете использовать команду SHOW INDEX для вывода списка всех индексов, связанных с таблицей. Вывод в вертикальном формате (заданный \ G) часто полезен с этим оператором, чтобы избежать переноса длинных строк.

Ниже приведен общий синтаксис для отображения индексной информации о таблице.