Sé cómo usar INDEX como en el siguiente código. Y sé cómo usar la clave externa y la clave primaria .
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 de la siguiente manera.
...
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)
.
KEY keyname (column_name)
cuando creé la tabla conINDEX keyname (column_name)
. El hecho de que sea sinónimo lo explica perfectamente.Aquí hay una buena descripción sobre la "diferencia":
fuente
Se menciona como sinónimo
INDEX
en los documentos 'crear tabla': Manual de referencia de MySQL 5.5 :: 13 Sintaxis de instrucciones SQL :: 13.1 Declaraciones de definición de datos :: 13.1.17 Sintaxis de CREATE TABLENos ya citamos la sección y enlazamos la ayuda para 5.1.
Al igual que
PRIMARY KEY
crea una clave principal y un índice para usted, soloKEY
crea un índice.fuente
Las claves son campos especiales que juegan 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 proporciona RDBMS (sistema de gestión de bases de datos) para mejorar el procesamiento de datos. Un índice no tiene nada que ver con una estructura de base de datos lógica.
ENTONCES...
Las claves son estructuras lógicas que utiliza para identificar registros dentro de una tabla y los índices son estructuras físicas que utiliza para optimizar el procesamiento de datos.
Fuente: Diseño de base de datos para simples mortales
Autor: Michael Hernandez
fuente
Una clave es un conjunto de columnas o expresiones sobre las cuales construimos un índice.
Mientras que un índice es una estructura que se almacena en la base de datos, las claves son estrictamente un concepto lógico.
Index nos ayuda a acceder rápidamente a un registro, mientras que las teclas solo identifican los registros de manera única.
Cada tabla necesariamente tendrá una clave, pero tener un índice no es obligatorio.
Verifique en https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721
fuente