O comando CREATE INDEX é utilizado para criar índices em tabelas do banco de dados MySQL.
Um índice melhora o desempenho das consultas, permitindo que o banco encontre informações com maior rapidez.
Um índice é uma estrutura criada pelo banco de dados para organizar referências aos dados armazenados em uma tabela.
Quando uma consulta utiliza uma coluna indexada, o MySQL consegue localizar registros de forma mais eficiente.
| Sem Índice | Com Índice |
|---|---|
| Pesquisa registro por registro | Busca diretamente pela referência |
| Maior tempo de consulta | Maior velocidade |
| Mais processamento | Menos processamento |
CREATE INDEX nome_indice
ON nome_tabela
(nome_coluna);
Criando uma tabela de clientes:
CREATE TABLE clientes (
id INT PRIMARY KEY,
nome VARCHAR(100),
email VARCHAR(150)
);
Criando um índice para pesquisa por nome:
CREATE INDEX idx_nome
ON clientes(nome);
Podemos criar índices compostos.
CREATE INDEX idx_nome_email
ON clientes(nome, email);
Esse índice utiliza duas colunas para melhorar pesquisas combinadas.
Um índice UNIQUE impede valores duplicados.
CREATE UNIQUE INDEX idx_email
ON clientes(email);
Outra forma de criar índices:
ALTER TABLE clientes
ADD INDEX idx_nome(nome);
SHOW INDEX FROM clientes;
SELECT *
FROM clientes
WHERE nome = 'Maria';
Se a coluna nome possuir índice, a busca poderá ser executada mais rapidamente.
| Tipo | Descrição |
|---|---|
| PRIMARY KEY | Índice principal da tabela |
| UNIQUE | Impede valores duplicados |
| INDEX | Melhora consultas |
| FULLTEXT | Pesquisa em textos grandes |
| Sistema | Uso de Índice |
|---|---|
| E-commerce | Busca de produtos |
| Banco | Consulta de clientes |
| Hospital | Pesquisa de pacientes |
| Escola | Consulta de alunos |