Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Declaração MySQL CREATE INDEX

A instrução `CREATE INDEX` no MySQL é usada para criar um índice na(s) coluna(s) de uma tabela para aumentar a velocidade de recuperação da consulta. Os índices são essenciais para otimizar o desempenho do banco de dados, especialmente ao lidar com grandes conjuntos de dados.

Uso

A instrução `CREATE INDEX` é usada quando você precisa melhorar o desempenho das operações de recuperação de dados. É particularmente útil para acelerar as consultas `SELECT` que filtram ou classificam dados.

CREATE INDEX index_name
ON table_name (column1, column2, ...);

Nessa sintaxe, `CREATE INDEX` define o nome do índice e especifica a tabela e as colunas nas quais o índice é criado.

Exemplos

1. Criação de índices básicos

CREATE INDEX idx_lastname
ON employees (last_name);

Esse exemplo cria um índice chamado `idx_lastname` na coluna `last_name` da tabela `employees`, otimizando as consultas que filtram por sobrenomes.

2. Índice composto

CREATE INDEX idx_name_dob
ON employees (last_name, birth_date);

Essa sintaxe demonstra a criação de um índice composto em `last_name` e `birth_date`, útil para consultas que filtram por ambas as colunas.

3. Índice único

CREATE UNIQUE INDEX idx_email
ON users (email);

Este exemplo cria um índice exclusivo na coluna `email` da tabela `users` para garantir que todas as entradas de e-mail sejam exclusivas e para acelerar as pesquisas por e-mail.

4. Índice de texto completo

CREATE FULLTEXT INDEX idx_content
ON articles (content);

Este exemplo cria um índice `FULLTEXT` na coluna `content` da tabela `articles`, que é útil para pesquisas de texto completo.

5. Índice espacial

CREATE SPATIAL INDEX idx_location
ON locations (geo_point);

Isso cria um índice `SPATIAL` na coluna `geo_point` da tabela `locations`, o que é útil para tipos de dados geográficos.

Dicas e práticas recomendadas

  • Indexar seletivamente. Crie índices somente nas colunas que são pesquisadas ou classificadas com frequência para evitar sobrecarga desnecessária.
  • Monitore o desempenho. Use a instrução `EXPLAIN` para avaliar o desempenho da consulta e determinar se um índice é vantajoso.
  • Considere o tipo de índice. Escolha o tipo de índice apropriado (por exemplo, exclusivo, de texto completo, espacial) com base em seus dados e necessidades de consulta.
  • Equilíbrio entre leitura e gravação. Lembre-se de que, embora os índices acelerem as leituras, eles podem tornar mais lentas as operações de gravação (INSERT, UPDATE, DELETE).
  • Funcionamento interno. A maioria dos índices usa estruturas de árvore B para manter os dados classificados, o que facilita as pesquisas rápidas.
  • Limitações. Entenda as limitações, como o número máximo de índices por tabela ou o tamanho máximo das chaves de índice.
  • Convenções de nomenclatura. Use nomes claros e descritivos para os índices para manter a legibilidade, como prefixar com `idx_`.
  • Capacidade de gerenciamento. Revise e gerencie regularmente os índices usando `ALTER TABLE` para modificar e `DROP INDEX` para remover índices desnecessários.

Gerenciamento e remoção de índices

Para modificar um índice, você pode usar a instrução `ALTER TABLE`. Para remover um índice, é usada a instrução `DROP INDEX`, conforme mostrado abaixo:

DROP INDEX idx_lastname ON employees;

Considerações

  • Chave primária vs. Chave de acesso Índice único. Uma chave primária é uma restrição que garante valores exclusivos e não anulabilidade, enquanto um índice exclusivo impõe apenas a exclusividade.
  • Colunas de baixa cardinalidade. Evite indexar colunas com baixa cardinalidade, pois elas podem não oferecer benefícios significativos de desempenho.
  • Mesas pequenas. Os índices em tabelas muito pequenas podem não gerar melhorias perceptíveis no desempenho devido à sobrecarga de manutenção do índice.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça