ÍNDICE DE QUEDA MySQL

Resumo : neste tutorial, você aprenderá como usar a DROP INDEXinstrução MySQL para remover índices existentes de uma tabela.

Introdução à instrução MySQL DROP INDEX

Para excluir um índice existente de uma tabela, você usa a DROP INDEXinstrução a seguir:

DROP INDEX index_name 
ON table_name
[algorithm_option | lock_option];Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, especifique o nome do índice que deseja remover após as DROP INDEXpalavras-chave.
  • Segundo, especifique o nome da tabela à qual o índice pertence.

Algoritmo

Permite algorithm_optionespecificar um algoritmo específico usado para a remoção do índice.

O seguinte mostra a sintaxe da algorithm_optioncláusula:

ALGORITHM [=] {DEFAULT|INPLACE|COPY}Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para a remoção do índice, os seguintes algoritmos são suportados:

  • COPY: O MySQL copia os dados da tabela original para uma nova tabela linha por linha. Após concluir a cópia, o DROP INDEX é executado na tabela recém-criada. Observe que durante o processo de cópia, você não tem permissão para executar nenhuma instrução de manipulação de dados simultânea, como INSERTe UPDATE.
  • INPLACE: o algoritmo INPLACE envolve a reconstrução da tabela diretamente em seu local existente sem criar uma nova cópia da tabela. Durante as fases de preparação e execução do processo de remoção do índice, o MySQL coloca um bloqueio exclusivo de metadados na tabela. Isso permite que instruções simultâneas de manipulação de dados sejam executadas juntamente com o processo de remoção do índice.

Observe que a ALGORITHMcláusula é opcional. Se você pular, o MySQL usará INPLACE. Caso INPLACEnão seja suportado, o MySQL usa COPY.

Usar DEFAULTtem o mesmo efeito que omitir a ALGORITHMcláusula.

Trancar

Controla lock_optiono nível de leituras e gravações simultâneas na tabela enquanto o índice está sendo removido.

O seguinte mostra a sintaxe do lock_option:

LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Os seguintes modos de bloqueio são suportados:

  •  DEFAULT: Isso permite que você tenha o nível máximo de simultaneidade para um determinado algoritmo. Primeiro, permite leituras e gravações simultâneas, se houver suporte. Caso contrário, permita leituras simultâneas, se houver suporte. Caso contrário, imponha acesso exclusivo.
  •  NONE: se NONEhouver suporte, você poderá ter leituras e gravações simultâneas. Caso contrário, o MySQL emitirá um erro.
  •  SHARED: se SHAREDhouver suporte, você poderá ter leituras simultâneas, mas não gravações. O MySQL emite um erro se as leituras simultâneas não forem suportadas.
  •  EXCLUSIVE: Isso impõe acesso exclusivo.

Exemplos de instruções MySQL DROP INDEX

Vamos criar uma nova tabela para demonstração:

CREATE TABLE leads(
    lead_id INT AUTO_INCREMENT,
    first_name VARCHAR(100) NOT NULL,
    last_name VARCHAR(100) NOT NULL,
    email VARCHAR(255) NOT NULL,
    information_source VARCHAR(255),
    INDEX name(first_name,last_name),
    UNIQUE email(email),
    PRIMARY KEY(lead_id)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A instrução a seguir remove o nameíndice da leadstabela:

DROP INDEX name ON leads;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A instrução a seguir elimina o emailíndice da leadstabela com um algoritmo e bloqueio específicos:

DROP INDEX email ON leads
ALGORITHM = INPLACE 
LOCK = DEFAULT;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Índice MySQL DROP PRIMARY KEY

Para eliminar a chave primária cujo nome de índice é PRIMARY, você usa a seguinte instrução:

DROP INDEX `PRIMARY` ON table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que PRIMARYé uma palavra invertida no MySQL. No entanto, o nome do índice é PRIMARY. Portanto, você precisa colocar PRIMARY entre aspas para especificar o índice primário.

A instrução a seguir cria uma nova tabela nomeada tcom uma chave primária:

CREATE TABLE t(
    pk INT PRIMARY KEY,
    c VARCHAR(10)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para eliminar o índice de chave primária, você usa a seguinte instrução:

DROP INDEX `PRIMARY` ON t;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a DROP INDEXinstrução para remover um índice existente.
  • Use o DROP INDEX `PRIMARY`para remover o índice primário.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *