Sintaxe CREATE INDEX


A instrução CREATE INDEX não faz nada em versões do MariaDB anterior a 3.22. Na versão 3.22 ou posteriores, CREATE INDEX é mapeado para uma instrução ALTER TABLE para criar índices. Leia "Sintaxe ALTER TABLE".

Normalmente você cria todos os índices em uma tabela ao mesmo tempo em que a própria tabela é criada com CREATE TABLE. Leia "Sintaxe CREATE TABLE". CREATE INDEX lhe permite adicionar índices a tabelas existentes.

Uma lista de colunas na forma (col1,col2,...) cria um índice com múltiplas colunas. Valores de índice são formados concatenando os valores de colunas dadas.

Para colunas CHAR e VARCHAR, índices que utilizam apenas parte da coluna podem ser criados, usando a sintaxe nome_coluna(length) para indexar os primeiros length() bytes de cada valor da coluna. (Para colunas BLOB e TEXT, um prefixo length é exigido; length() pode ter um valor até 255 caracteres.) A instrução mostrada aqui cria um índice usando os primeiros 10 caracteres da coluna name:

mysql> CREATE INDEX part_of_name ON customer (name(10));

Como a maioria dos nomes normalmente diferem nos primeiros 10 caracteres, este índice não deve ser muito menor que um índice criado com toda a coluna name. Além disso, usar colunas parciais como índices pode fazer o arquivo de índice muito menor, o que pode economizar muito espaço em disco e pode também aumentar a velocidade de operações INSERT!

Note que você pode adicionar um índice em uma coluna que pode ter valores apenas se você estiver usando o MariaDB Versão 3.23.2 ou mais novo e estiver usando os tipos de tabelas MyISAM, InnoDB, ou BDB. Você só pode adicionar um índice em uma coluna BLOB/ TEXT se você estiver usando o MariaDB Versão 3.23.2 ou mais novo e estiver usando os tipos de tablea MyISAM ou BDB, ou MariaDB Versão 4.0.14 ou mais novo e o tipo de tabela InnoDB. Para um índice em uma coluna BLOB/TEXT, o tamanho do prefixo sempre deve ser especificado.

Uma especificação index_col_name pode finalizar com ASC ou DESC. Esta palavras chaves são permitidas para estensão futura para especificar o armazenamento do valor do índice em crescente ou decrescente. Atualmente elas são analisadas mas ignoradas; valores de índice são sempre armazenados em ordem crescente.

Para mais detalhes sobre como o MariaDB utiliza índices, veja "Como o MariaDB Utiliza Índices".

Indíces FULLTEXT só podem indexar colunas CHAR, VARCHAR e TEXT, e apenas em tabelas MyISAM. Índices FULLTEXT estão disponíveis no MariaDB Versão 3.23.23 e posterior. "Pesquisa Full-text no MySQL".

Retornar