Pregunta

Sé cómo usar INDEX como en el siguiente código. Y sé cómo usar clave externa y clave principal .

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


Sin embargo, encontré un código usando KEY en lugar de INDEX como sigue.

...
KEY order_date (order_date) 
...


No pude encontrar ninguna explicación en la página oficial de MySQL. ¿Alguien podría decirme cuáles son las diferencias entre KEY e INDEX?

La única diferencia que veo es que cuando uso KEY ... , necesito repetir la palabra, por ejemplo,
KEY order_date (order_date) .

¿Fue útil?

Solución

No hay diferencia. Son sinónimos.

Desde la entrada de manual CREATE TABLE :

  

KEY es normalmente un sinónimo de INDEX . El atributo clave PRIMARY KEY puede   también se puede especificar como solo KEY cuando se proporciona en una definición de columna. Esto era   implementado para la compatibilidad con otros sistemas de bases de datos.

Otros consejos

Aquí hay un buena descripción sobre el " diferencia " ;:

  

" MySQL requiere que cada clave también esté indexada, eso es una implementación   detalles específicos de MySQL para mejorar el rendimiento. "

Se menciona como un sinónimo para INDEX en los documentos de 'crear tabla': MySQL 5.5 Reference Manual :: 13 Sintaxis de sentencias de SQL :: 13.1 Definición de datos Declaraciones :: 13.1.17 Sintaxis de CREATE TABLE

Los números ya citamos la sección y vincularon la ayuda de 5.1.

Al igual que PRIMARY KEY crea una clave principal y un índice para ti, KEY crea un índice solamente.

Las claves son campos especiales que desempeñan roles muy específicos dentro de una tabla, y el tipo de clave determina su propósito dentro de la tabla.

Un índice es una estructura que RDBMS (sistema de gestión de bases de datos) proporciona para mejorar el procesamiento de datos. Un índice no tiene nada que ver con una estructura de base de datos lógica.

SO ...

Las claves son estructuras lógicas que se utilizan para identificar registros dentro de una tabla y los índices son estructuras físicas que se utilizan para optimizar el procesamiento de datos.

Fuente: Diseño de base de datos para mortales mortales

Autor: Michael Hernandez

Una clave es un conjunto de columnas o expresiones en las que creamos un índice.

  1. Si bien un índice es una estructura que se almacena en la base de datos, las claves son estrictamente un concepto lógico.

  2. El índice nos ayuda a acceder rápidamente a un registro, mientras que las claves solo identifican los registros de forma única.

  3. Cada tabla necesariamente tendrá una clave, pero tener un índice no es obligatorio.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top