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.

