Pergunta

Eu sei como usar INDEX como no código a seguir. E eu sei como usar chave estrangeira e chave primária .

CREATE TABLE tasks ( 
  task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
  parent_id INT UNSIGNED NOT NULL DEFAULT 0, 
  task VARCHAR(100) NOT NULL, 
  date_added TIMESTAMP NOT NULL, 
  date_completed TIMESTAMP, 
  PRIMARY KEY (task_id), 
  INDEX parent (parent_id), 
  ....


No entanto eu encontrei um código usando CHAVE em vez do índice da seguinte forma.

...
KEY order_date (order_date) 
...


Eu não poderia encontrar qualquer explicação na página oficial do MySQL. Alguém poderia me dizer qual é a diferença entre a chave eo índice?

A única diferença que vejo é que quando eu uso KEY ..., eu preciso repetir a palavra, por exemplo
KEY order_date (order_date).

Foi útil?

Solução

Não há nenhuma diferença. Eles são sinônimos.

A partir o CREATE TABLE manual de entrada :

KEY é normalmente um sinônimo para INDEX. A lata chave de atributo PRIMARY KEY também ser especificado como apenas KEY quando administrado em uma definição de coluna. este foi implementado para compatibilidade com outros sistemas de banco de dados.

Outras dicas

Aqui é um boa descrição sobre a "diferença ":

"MySQL exige que cada Key também ser indexado, isso é uma implementação detalhe específico para MySQL para melhorar o desempenho. "

Ele é mencionado como sinônimo de INDEX em "Criar mesa dos docs: MySQL 5.5 Reference Manual :: Declaração de 13 de sintaxe SQL :: 13.1 Definição de Dados demonstrações :: 13.1.17 CREATE TABLE Syntax

Nos já citou a seção e ligada a ajuda para 5,1.

Como PRIMARY KEY cria uma chave primária e um índice para você, KEY cria apenas um índice.

As chaves são campos especiais que desempenham papéis muito específicos dentro de uma tabela, e o tipo de chave determina o seu propósito dentro da tabela.

Um índice é uma estrutura que RDBMS (sistema de gestão de base de dados) fornece para melhorar o processamento de dados. Um índice não tem nada a ver com uma estrutura de banco de dados lógico.

SO ...

As chaves são estruturas lógicas que você usa para identificar registros dentro de uma tabela e os índices são estruturas físicas que você usa para processamento de dados otimizar.

Fonte: Banco de dados de design para Meros Mortais

Autor: Michael Hernandez

A chave é um conjunto de colunas ou expressões em que nós construímos um índice.

  1. Enquanto um índice é uma estrutura que é armazenado no banco de dados, as chaves são estritamente um conceito lógico.

  2. Índice ajuda-nos no acesso rápido um recorde, enquanto as chaves apenas identificar os registros de forma exclusiva.

  3. Cada mesa terá necessariamente uma chave, mas ter um índice não é obrigatório.

Verifique na https://docs.oracle. com / cd / E11882_01 / server.112 / e40540 / indexiot.htm # CNCPT721

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top