Eu sei como usar o índice 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, encontrei um código usando KEY em vez de INDEX da seguinte forma.
...
KEY order_date (order_date)
...
Não encontrei nenhuma explicação na página oficial do MySQL. Alguém poderia me dizer quais são as diferenças entre KEY e INDEX?
A única diferença que vejo é que, quando uso KEY ...
, preciso repetir a palavra, por exemplo
KEY order_date (order_date)
.
KEY keyname (column_name)
quando eu criei a tabelaINDEX keyname (column_name)
. O fato de ser sinônimo explica perfeitamente.Aqui está uma boa descrição sobre a "diferença":
fonte
É mencionado como sinônimo
INDEX
nos documentos 'create table': Manual de Referência do MySQL 5.5 :: 13 Sintaxe da Instrução SQL :: 13.1 Instruções de Definição de Dados :: 13.1.17 Sintaxe CREATE TABLENos já citaram a seção e vincularam a ajuda para 5.1.
Like
PRIMARY KEY
cria uma chave primária e um índice para você,KEY
cria apenas um índice.fonte
Chaves são campos especiais que desempenham papéis muito específicos dentro de uma tabela e o tipo de chave determina seu objetivo dentro da tabela.
Um índice é uma estrutura que o RDBMS (sistema de gerenciamento de banco de dados) fornece para melhorar o processamento de dados. Um índice não tem nada a ver com uma estrutura lógica de banco de dados.
TÃO...
As chaves são estruturas lógicas usadas para identificar registros em uma tabela e os índices são estruturas físicas usadas para otimizar o processamento de dados.
Fonte: Design de banco de dados para meros mortais
Autor: Michael Hernandez
fonte
Uma chave é um conjunto de colunas ou expressões nas quais construímos um índice.
Enquanto um índice é uma estrutura armazenada no banco de dados, as chaves são estritamente um conceito lógico.
O índice nos ajuda a acessar rapidamente um registro, enquanto as chaves apenas identificam os registros exclusivamente.
Toda tabela terá necessariamente uma chave, mas ter um índice não é obrigatório.
Verifique em https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721
fonte