Como um índice de um livro , um índice MySQL permite que você encontre os dados de forma mais eficiente . O índice contém apenas os campos que estão interessados em resolver , ao invés de todo o registro . Todos os tipos de dados podem ser índices e pode haver até 16 índices por tabela . Os índices podem ser criados em um prefixo da coluna ( os primeiros caracteres de cada registro ) , toda a coluna ou mais de uma coluna . Você pode até criar um índice de texto completo. Criar Índice Sintaxe
índices são normalmente criados quando é criada uma tabela com a instrução CREATE TABLE:
CRIAR exemplo TABLE ( INT empid (10), fname VARCHAR ( 20) , lname VARCHAR ( 20) , INDEX ( empid ) );
no entanto, você pode criar índices em tabelas após as tabelas são criadas com esta declaração:
CREATE INDEX employeeid ON exemplo ( empid ); < br >
tipos de índices
índices de prefixo são criados usando apenas a parte principal ( prefixo ) do valor da coluna . Por exemplo, se você indexados em um último nome , você pode criar um índice apenas nos cinco primeiros caracteres do nome . Colunas que usam o "char ", " varchar ", " binário ", " varbinary ", " blob " e " texto" tipos de dados podem ser indexados com prefixos. O tamanho do prefixo é dada em caracteres para tipos de dados de cordas e bytes para os tipos de dados binários. O tamanho é indicado logo após o nome da coluna na instrução CREATE TABLE e CREATE INDEX . Por exemplo :
CREATE INDEX last_name ON exemplo ( fname (5) );
A (5 ) a designação é o comprimento do prefixo em caracteres
prefixos Coluna fazer . o arquivo de índice menor que economiza espaço em disco e podem, eventualmente, acelerar declarações " Inserir", uma vez que estas declarações devem atualizar o índice , bem como a mesa.
um índice exclusivo cria um índice em que todos os valores do índice são distintas uma da outra . Se você adicionar um novo valor de índice que corresponde a um valor existente, ocorrerá um erro . A única exceção a esta regra é o valor NULL. Pode haver vários valores NULL em um índice exclusivo. Índices de prefixo também pode ser único. A sintaxe para criar um índice UNIQUE é :
CREATE UNIQUE INDEX ON last_name exemplo ( fname (5) );
índices de texto completo são criados ao longo de toda a coluna . Prefixos não são permitidos para os índices de texto completo. A coluna deve ser criada com os tipos de dados char, varchar e de dados de texto. A sintaxe para a criação de um índice de texto completo é:
CRIAR Descrição Completa TEXT INDEX ON exemplo ( descrição );
Usando Índices
sem índices , o MySQL irá começar no primeiro registro em uma tabela, e ler a tabela inteira para encontrar todos os registros relevantes . Se a tabela tem um índice , o MySQL pode encontrar a posição dos dados no meio do arquivo de dados
índices são utilizados quando uma instrução tem uma cláusula WHERE, tais como: .
Selecione empid dE ONDE exemplo lname = 'Smith' ;
Se houver vários índices para escolher o MySQL irá usar o índice que retorna a menor quantidade de linhas. Isso elimina as linhas de consideração durante uma consulta.
Junte-se consultas pode usar índices para encontrar rapidamente linhas em várias tabelas. No entanto, eles só são úteis se os valores são os mesmos ou similares tipos de dados.
Os índices também são usados para encontrar o MIN () ou MAX ( ) valores dentro de uma coluna de índice e ordenar ou agrupar uma tabela .