Olá, nesse artigo falaremos sobre índices no MySQL.

Como pudemos ver nos artigos anteriores, os índices são apontamentos estruturados organizacionalmente, que indicam o local para acesso aos dados das estruturas de tabelas físicas. Podemos enxergar, que os índices funcionam como facilitadores para o acesso aos dados das tabelas. No MySQL não é diferente. Criamos índices para melhorar a performance de acesso a estes dados. Se não tivermos índices nas tabelas, cada vez que tentarmos localizar algum dado, o engine do MySQL irá percorrer fisicamente todos os registros da tabela, afim de encontrar os registros relevantes.

No MySQL os índices são armazenados em uma estrutura separada dos dados físicos das tabelas, chamados de B-tree ou árvore B. No caso de colunas com tipos de dados string, esses são automaticamente compactados nos espaços finais e prefixados. Os índices no MySQL podem ser Primary, Unique e Index.

O tipo Index ou índice normal, são índices básicos. Não possuem qualquer tipo de restrição, como unicidade e podem ser criados em colunas que podemos utilizar nas clausulas where e/ou group by.

Os índices Primary, como o próprio nome diz, são a chave primária. A particularidade desse índice, é que só poderemos ter um único índice desse tipo por tabela.

Os índices Unique, são idênticos aos índices normais, porém utilizamos esses índices com o intuito de não poder repetir os valores da coluna, ou seja, pra que elas tenham valores únicos.

A partir da versão 3.23.23 do MySQL, também podemos criar índices do tipo FULL TEXT. Esses índices são utilizados para pesquisas textuais. Esse tipo de índice, somente é suportado em tabelas do tipo MyISAM, e em tipos de colunas CHAR, VARCHAR e TEXT.

Como em todos os SGDBs (Sistemas Gerenciadores de Banco de Dados), precisamos ter alguns cuidados ao criar índices. Primeiro, precisamos ter a certeza que aquele índice será realmente utilizado em nossas consultas ou atualizações. Lembrem-se, o índice também poderá ser o causador de alguma lentidão, pois ao inserir, atualizar ou deletar informações das tabelas, as estruturas de índices também serão atualizadas.

Até o próximo artigo