Você está na página 1de 9

conceitualmente.MySQL – Indexação  Índices e Chaves Os índices são estruturas armazenadas no banco de dados e que são criadas pelo usuário pelo comando SQL. . elas são diferentes. mas. em geral. Na verdade são restrições de integridade (integrity constraints) que servem para criar as regras de negócios do banco de dados. são associadas aos índices. As chaves.

Nesse caso. toda vez que uma linha for inserida. a criação de um índice seguido da criação de uma tabela e o seu povoamento irá requerer espaço extra para a ordenação dos índices. Contudo.MySQL – Indexação  Quando criar os índices? Um índice pode ser criado durante o processo de elaboração da estrutura da tabela por meio do uso da constraint PRIMARY KEY. muitas vezes é melhor criá-lo depois principalmente se a tabela contiver dados que já existem e que serão carregados com utilitários. . os índices serão atualizados. o que irá requerer um tempo maior de processamento. Por outro lado.

. Um índice composto pode agilizar uma consulta onde o comando SELECT usa a cláusula WHERE referenciando as colunas que fazem parte do índice. A ordem de importância das colunas deve ser mantida na composição do índice.MySQL – Indexação  Índices simples e compostos Um índice é criado baseado no conteúdo de uma coluna. Um índice composto ou concatenado é aquele criado com o conteúdo de duas ou mais colunas de uma tabela. As colunas usadas em um índice composto não precisam estar adjacentes. as colunas que são usadas com mais frequência devem aparecer na frente das demais durante a especificação do índice. Por exemplo.

. PRIMARY KEY (id_pai) ). CREATE TABLE filho( id_filho INT. pai_id INT. FOREIGN KEY (pai_id) REFERENCES pai(id) ).MySQL – Indexação  Criando Índices com constraints Ao criar uma constraint usando PRIMARY KEY. INDEX lacos_ind (pai_id). Nenhum outro comando é necessário para a criação do índice. Veja o exemplo: CREATE TABLE pai( id_pai INT NOT NULL. cria-se automaticamente um índice se a constraint estiver habilitada.

tabela ASC/DESC). usando uma única coluna.MySQL – Indexação  Criando Índices com o comando CREATE INDEX Create Index é o responsável pela criação de índices simples. (nome da coluna . ou índices compostos. Veja a sintaxe: CREATE INDEX nome ON esquema. usando mais de uma coluna.

Não é possível alterar colunas do índice. Nessa situação. ele deve ser excluído e depois criado com uma nova definição.MySQL – Indexação  Alteração de um índice A alteração de um índice é restrita aos parâmetros de transação e armazenamento. .

MySQL – Indexação  Eliminando um índice Um índice deve ser mantido ativo apenas quando for efetivamente utilizado. Sintaxe: DROP INDEX nome . Nesse caso. um índice pode se tornar muito fragmentado. é aconselhável apagá-lo e recriá-lo. já que o desempenho é uma composição de diversos fatores. O fato de criar um índice para uma coluna não quer dizer que haverá um ganho de produção. Manter um índice que não é usado com frequência acaba reduzindo o desempenho do sistema e ocupando espaço em disco desnecessariamente. remova-o. O comando responsável pela eliminação de um índice é o DROP INDEX. Periodicamente. Se perceber por meio de testes que não existe ganho de desempenho com um índice.

MySQL – Indexação  Resolver o exercício que está em anexo. .