Visão geral sobre índices no MySQL

indices_mysqlApresentarei aqui uma Visão geral sobre índices no MySQL, onde vamos falar sobre um assunto muito importante para qualquer tipo de sistema que utilize um banco de dados, quer seja WEB, Mobile ou Dektop, são os índices. Nesse artigo o foco são os vários tipos de índices existentes no MySQL e como usá-los da melhor maneira. 
 
Podemos definir índices basicamente como, uma referência associada a uma chave com o objetivo de otimização, permitindo que uma consulta localize rapidamente um registro. Uma comparação muito frequente é a de um índice remissivo de um livro, onde selecionamos determinado assunto no índice do livro verificamos sua página e depois localizamos essa página para leitura.

O MySQL suporta os seguintes tipos de índices:

  1. PRIMARY KEY
  2. UNIQUE
  3. INDEX
  4. FULLTEXT
 
Abaixo seguem algumas características e regras para utiliza-los:
  • Índice não único é um no qual qualquer valor da chave pode ocorrer múltiplas vezes. Este tipo de índice é definido com a palavra chave  INDEX ou KEY;
  • Índice UNIQUE possui valor único, ou seja, cada valor da chave deve ser diferente de todos os outros (a exceção é que valores NULL podem ocorrer múltiplas vezes);
  • PRIMARY KEY também é um índice de valores únicos. Ela é semelhante a um índice UNIQUE, mas tem restrições adicionais; 
  • Uma tabela pode conter múltiplos índices UNIQUE, mas no máximo uma PRIMARY KEY;
  • Um índice UNIQUE pode conter valores NULL, enquanto que uma PRIMARY KEY não;
  • Índice FULLTEXT é projetado especialmente para a busca em texto;
Fonte: Livro MySQL – Guia de Estudo para Certificação.
 
Podemos criar índices ao mesmo tempo em que criamos tabelas, como no script abaixo onde estão sendo criados índices PRIMARY KEYUNIQUE e INDEX:

Se a tabela já existe podemos usar os comandos ALTER TABLE ou CREATE INDEX:

Post relacionado:  Utilizando SQL_CACHE no MySQL

Para excluir um índice podemos usar os comandos ALTER TABLE ou DROP INDEX:

E finalizando podemos usa o comando SHOW INDEX para listar todos os índices de uma tabela:

Bom pessoal esse conteúdo foi uma visão geral sobre como trabalhar com índices no MySQL, espero que esse artigo sirva como preparação para o próximo tema que será sobre otimização de consultas no MySQL e para esse tema é necessário ter um breve conhecimento sobre os tipos de índices suportados pelo MySQL.

 
Até a próxima …
Tags:
Show Buttons
Hide Buttons