¿Cuál es la diferencia entre usar INDEX vs KEY en MySQL?
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)
.
Solución
No hay diferencia. Son sinónimos.
Desde la entrada de manual CREATE TABLE
:
KEY
es normalmente un sinónimo deINDEX
. El atributo clavePRIMARY KEY
puede también se puede especificar como soloKEY
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.
-
Si bien un índice es una estructura que se almacena en la base de datos, las claves son estrictamente un concepto lógico.
-
El índice nos ayuda a acceder rápidamente a un registro, mientras que las claves solo identifican los registros de forma única.
-
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