Unetway

SQLite - Indexes

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

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

Индекс помогает ускорить запросы SELECT и предложения WHERE, но это замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы могут быть созданы или удалены без влияния на данные.

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

Индексы также могут быть уникальными, подобно ограничению UNIQUE, поскольку индекс предотвращает дублирование записей в столбце или комбинации столбцов, на которых есть индекс.

Команда CREATE INDEX

Ниже приведен основной синтаксис CREATE INDEX.

CREATE INDEX index_name ON table_name;

Одиночные колонки

Индекс с одним столбцом - это тот, который создается на основе только одного столбца таблицы. Основной синтаксис выглядит следующим образом:

CREATE INDEX index_name
ON table_name (column_name);

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

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

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Композитные индексы

Составной индекс - это индекс на двух или более столбцах таблицы. Основной синтаксис выглядит следующим образом:

CREATE INDEX index_name
on table_name (column1, column2);

Чтобы создать индекс с одним столбцом или составной индекс, учитывайте столбцы (столбцы), которые вы можете использовать очень часто в предложении WHERE запроса в качестве условий фильтра.

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

Неявные индексы

Неявные индексы - это индексы, которые автоматически создаются сервером базы данных при создании объекта. Индексы автоматически создаются для ограничений первичного ключа и уникальных ограничений.

Команда DROP INDEX

Индекс можно удалить с помощью команды SQLite DROP. Следует соблюдать осторожность при снижении индекса, поскольку производительность может замедляться или улучшаться.

DROP INDEX index_name;

Вы можете использовать следующий оператор для удаления ранее созданного индекса.

sqlite> DROP INDEX salary_index;