Latest web development tutorials

Índice de MySQL

MySQL MySQL construir índices para uma operação eficiente é muito importante, índices pode melhorar significativamente a velocidade de recuperação de MySQL.

Por exemplo, se um projeto razoável e usar o índice MySQL é um Lamborghini, então não há nenhuma concepção e utilização do índice MySQL é um triciclo.

Índice aponta índice separado e índice de combinação. índice separado que contém somente um único índice de coluna, uma tabela pode ter índice separado múltipla, mas isso não é um índice composto. índice composto, ou seja, um cabo que compreende uma pluralidade de colunas.

Quando você cria um índice, você precisa garantir que o índice é utilizado numa condições de consulta SQL (geralmente como uma condição da cláusula WHERE).

Na verdade, o índice também é uma tabela que contém a chave e índice de campos primários e pontos para gravar a tabela de entidade.

O texto acima está falando sobre os benefícios de usar o índice, mas o uso excessivo do índice irá resultar em abuso. Portanto, o índice também tem suas desvantagens: Enquanto o índice aumentou muito a velocidade de consulta, ao mesmo tempo que irá reduzir a velocidade de atualizar a tabela, como tabela INSERT, UPDATE e DELETE. Porque a tabela de actualização, MySQL não é apenas para salvar os dados, mas também economizar cerca de arquivo de índice.

Indexação ocupa espaço em disco no arquivo de índice.


índice geral

Criar índice

Este é o índice de base, que não tem qualquer restrição. Criou das seguintes maneiras:

CREATE INDEX indexName ON mytable(username(length)); 

Se for CHAR, o tipo VARCHAR, o comprimento pode ser menor do que o comprimento real do campo, se BLOB e TEXT tipos, você deve especificar o comprimento.

Modificar estrutura da tabela

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

Quando você cria uma tabela especificar diretamente

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Excluir sintaxe índice

DROP INDEX [indexName] ON mytable; 

Índice única

É semelhante ao índice geral anterior, é diferente: o valor das colunas de índice deve ser exclusivo, mas permite valor livre. Se for uma combinação de índice, o valor da coluna deve ser único. Criou das seguintes maneiras:

Criar índice

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Modificar estrutura da tabela

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

Quando você cria uma tabela especificar diretamente

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

Use o comando ALTER para adicionar e excluir índices

Há quatro maneiras de adicionar tabela de dados de índice:

  • ALTER TABLE nome_tabela adicionar uma chave primária (column_list ): Esta instrução adiciona uma chave primária, o que significa que o valor do índice deve ser exclusivo e não pode ser NULL.

  • ALTER TABLE nome_tabela ADD index_name UNIQUE (column_list ): Esta instrução cria um valor de índice deve ser exclusivo (exceto NULL fora, NULL pode aparecer várias vezes).
  • ALTER TABLE nome_tabela ADD index_name INDEX (column_list ): adicionar um índice normal, o valor do índice pode ocorrer várias vezes.
  • ALTER TABLE nome_tabela ADD index_name FULLTEXT (column_list ): Esta declaração especifica o índice é FULLTEXT, para indexação de texto completo.

Os exemplos a seguir adicionar um índice na tabela.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Você também pode usar a cláusula DROP para remover o índice no comando ALTER. Tente os seguintes exemplos para excluir o índice:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Use o comando ALTER para adicionar e excluir a chave primária

Apenas agir em uma coluna de chave primária, quando você adiciona um índice de chave primária, você precisa ter certeza de que a chave primária padrão não está vazio (NOT NULL). Exemplos são os seguintes:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

Você também pode usar o comando ALTER para excluir a chave primária:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Basta especificar PRIMARY KEY Excluir o tempo especificado, mas quando você excluir o índice, você deve saber o nome do índice.


informações de índice de exibição

Você pode usar o comando SHOW INDEX para listar as informações de índice da tabela. Ao adicionar \ G para formatar a saída.

Tente os seguintes exemplos:

mysql> SHOW INDEX FROM table_name\G
........