Todos os tipos de colunas do MySQL podem ser indexadas. O uso de
índices nas colunas relevantes é a melhor forma de melhorar a
performance de operações SELECT
.
O número máximo de índices por tabelas e o tamanho máximo de um índice é definido pelo mecanismo de armazenamento. See Capítulo 7, Tipos de Tabela do MySQL. Todos os mecanismos de armazenamentos suportam um mínimo de 16 chaves por tabela e um índice de tamanho total mínimo de 256 bytes.
Para colunas CHAR
e
VARCHAR
você pode indexar um prefixo da
coluna. Isto é muito mais rápido e necessita de menos espaço
em disco do que indexar a coluna inteira. A sintaxe para
utilizar na instrução CREATE TABLE
para
indexar um prefixo de uma coluna se parece com o exemplo a
seguir:
INDEX nome_indice (nome_campo(tamanho))
O exemplo abaixo cria um índice para os primeiros 10 caracteres
da coluna nome
:
mysql> CREATE TABLE teste (
nome CHAR(200) NOT NULL,
INDEX nome_indice (nome(10)));
Para colunas BLOB
e TEXT
,
você deve indexar um prefixo da coluna. O índice pode ter até
255 bytes.
No MySQL Versão 3.23.23 ou posterior, você pode também criar
índices FULLTEXT especiais.
Eles são utilizados para pesquisas textuais. Somente o tipo de
tabela MyISAM
suporta índices
FULLTEXT
e apenas para colunas
CHAR
, VARCHAR
e
TEXT
. Indexação sempre acontece sobre toda
a coluna e indexação parcial (prefixo) não é suportada. Veja
Secção 6.8, “Pesquisa Full-text no MySQL” para detalhes.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.