Criação de índice no mysql

De Wiki Locaweb
Ir para: navegação, pesquisa

Um dos itens mais importantes na otimização da base de dados é a criação de índices. Com este procedimento sua consulta ficará bem mais rápida. O ideal é que crie índices em todos os campos utilizados nas cláusulas "where" e "joins" de suas queries. Para mais detalhes sobre esse procedimento, acesse o manual de referência do MySQL (português inglês).


Right-arrow-32.png No PHPMyAdmin, clique no nome da sua base:

Backmy01.jpg

Right-arrow-32.png Em seguida, clique no botão "estrutura" (que fica na frente na tabela em que deseja criar um índice):


Indice mysql 02.png

Right-arrow-32.png Agora basta clicar no botão "Criar índice" (na frente do campo em que deseja criar o índice):


Indice mysql 03.png

Right-arrow-32.png O resultado ficará assim:


Indice mysql 04.png

Criando índice em tabelas grandes


Geralmente quando a tabela é muito grande podem ocorrer alguns problemas no momento da criação dos índices, para contorná-los basta seguir os passos abaixo:

Right-arrow-32.png Faça uma copia da tabela para utilizando apenas a estrutura da mesma, para tal você pode usar o comando
create table tabela_nova like table_antiga

Right-arrow-32.png Após a criação da tabela_nova crie os índices conforme as instruções acima

Right-arrow-32.png Já com os índices criados na nova tabela, vamos popular a mesma com os dados da tabela_antiga, exemplo:

INSERT INTO TABLE tabela_nova (SELECT * FROM tabela_antiga limit 0,20000), esse comando irá pegar os 20 mil primeiros registros da tabela_antiga e adicionará os mesmos na tabela_nova, e assim, você vai incrementando o select limit 20001,20000 na segunda operação, limit 40001,20000 na terceira, ...

Right-arrow-32.png Após a cópia de todos os dados basta alterar o nome da tabela, exemplo:

ALTER TABLE tabela_antiga rename tabela_antiga_bkp; (Backup da tabela antiga)
ALTER TABLE tabela_nova rename tabela_antiga; (Renomeando a tabel_nova)


Veja também