HSQLDB - índices
UMA database indexé uma estrutura de dados que melhora a velocidade das operações em uma tabela. Os índices podem ser criados usando uma ou mais colunas, fornecendo a base para pesquisas aleatórias rápidas e ordenação eficiente de acesso aos registros.
Ao criar um índice, deve-se considerar quais são as colunas que serão usadas para fazer consultas SQL e criar um ou mais índices nessas colunas.
Praticamente, os índices também são tipos de tabelas, que mantêm a chave primária ou o campo de índice e um ponteiro para cada registro na tabela real.
Os usuários não podem ver os índices. Eles são usados apenas para acelerar as consultas e serão usados pelo Mecanismo de Pesquisa de Banco de Dados para localizar registros rapidamente.
As instruções INSERT e UPDATE demoram mais em tabelas com índices, enquanto as instruções SELECT são executadas mais rapidamente nessas tabelas. A razão é que ao inserir ou atualizar, o banco de dados precisa inserir ou atualizar os valores de índice também.
Índice Simples e Único
Você pode criar um índice exclusivo em uma tabela. UMAunique indexsignifica que duas linhas não podem ter o mesmo valor de índice. A seguir está a sintaxe para criar um índice em uma tabela.
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);
Você pode usar uma ou mais colunas para criar um índice. Por exemplo, crie um índice em tutorials_tbl usando tutorial_author.
CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)
Você pode criar um índice simples em uma tabela. Apenas omita a palavra-chave UNIQUE da consulta para criar um índice simples. UMAsimple index permite valores duplicados em uma tabela.
Se você deseja indexar os valores em uma coluna em ordem decrescente, pode adicionar a palavra reservada DESC após o nome da coluna.
CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)
Comando ALTER para adicionar e descartar INDEX
Existem quatro tipos de instruções para adicionar índices a uma tabela -
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - Esta instrução adiciona uma PRIMARY KEY, o que significa que os valores indexados devem ser exclusivos e não podem ser NULL.
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Esta instrução cria um índice para o qual os valores devem ser únicos (com exceção dos valores NULL, que podem aparecer várias vezes).
ALTER TABLE tbl_name ADD INDEX index_name (column_list) - Isso adiciona um índice comum no qual qualquer valor pode aparecer mais de uma vez.
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Isso cria um índice FULLTEXT especial que é usado para fins de pesquisa de texto.
A seguir está a consulta para adicionar índice em uma tabela existente.
ALTER TABLE testalter_tbl ADD INDEX (c);
Você pode eliminar qualquer INDEX usando a cláusula DROP junto com o comando ALTER. A seguir está a consulta para descartar o índice criado acima.
ALTER TABLE testalter_tbl DROP INDEX (c);
Exibindo informações INDEX
Você pode usar o comando SHOW INDEX para listar todos os índices associados a uma tabela. A saída de formato vertical (especificada por \ G) geralmente é útil com essa instrução, para evitar o contorno de linhas longas.
A seguir está a sintaxe genérica para exibir as informações de índice sobre uma tabela.
SHOW INDEX FROM table_name\G