web-dev-qa-db-fra.com

Quelle est la différence entre utiliser INDEX et KEY dans MySQL?

Je sais comment utiliser INDEX comme dans le code suivant. Et je sais comment utiliser clé étrangère et clé primaire.

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), 
  ....


Cependant, j'ai trouvé un code utilisant KEY au lieu de INDEX comme suit.

...
KEY order_date (order_date) 
...


Je n’ai trouvé aucune explication sur la page officielle de MySQL. Quelqu'un pourrait-il me dire quelles sont les différences entre KEY et INDEX?

La seule différence que je vois est que lorsque j'utilise KEY ..., Je dois répéter le mot, par exemple.
KEY order_date (order_date).

167
shin

Il n'y a pas de différence. Ils sont synonymes.

De la CREATE TABLE saisie manuelle :

KEY est normalement un synonyme de INDEX. L'attribut clé PRIMARY KEY peut aussi être spécifié simplement KEY lorsqu’il est donné dans une définition de colonne. Cela a été mis en œuvre pour la compatibilité avec d'autres systèmes de base de données.

232
nos

Voici un Belle description à propos de la "différence":

"MySQL exige que chaque clé soit également indexée, c'est un détail d'implémentation spécifique à MySQL pour améliorer les performances."

12
Stefan

Il est mentionné comme synonyme de INDEX dans la documentation 'create table': Manuel de référence de MySQL 5.5 :: 13 Syntaxe d'instruction SQL :: 13.1 Instructions de définition de données :: 13.1.17 Syntaxe CREATE TABLE

Nos déjà cité la section et lié l'aide pour 5.1.

Comme PRIMARY KEY crée une clé primaire et un index pour vous, KEY crée uniquement un index.

4
fineliner

Les clés sont des champs spéciaux qui jouent des rôles très spécifiques dans une table et le type de clé en détermine le but dans la table.

Un index est une structure fournie par le SGBDR (système de gestion de base de données) pour améliorer le traitement des données. Un index n'a rien à voir avec une structure de base de données logique.

ALORS...

Les clés sont des structures logiques que vous utilisez pour identifier des enregistrements dans une table et les index sont des structures physiques que vous utilisez pour optimiser le traitement des données.

Source: Conception de base de données pour simples mortels

Auteur: Michael Hernandez

3
JayD

Une clé est un ensemble de colonnes ou d'expressions sur lesquelles nous construisons un index.

  1. Bien qu'un index soit une structure stockée dans une base de données, les clés ne sont qu'un concept logique.

  2. Index nous aide à accéder rapidement à un enregistrement, tandis que les clés identifient les enregistrements de manière unique.

  3. Chaque table aura nécessairement une clé, mais avoir un index n'est pas obligatoire.

Vérifiez sur https://docs.Oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721

0
Atulya Anand