¿Cuándo debo usar KEY
, PRIMARY KEY
, UNIQUE KEY
y INDEX
?
¿Cuándo debo usar KEY
, PRIMARY KEY
, UNIQUE KEY
y INDEX
?
Respuestas:
KEY
y INDEX
son sinónimos en MySQL. Quieren decir lo mismo. En las bases de datos, usaría índices para mejorar la velocidad de recuperación de datos. Un índice se crea normalmente en columnas utilizadas en JOIN
, WHERE
y ORDER BY
cláusulas.
Imagine que tiene una tabla llamada users
y desea buscar todos los usuarios que tienen el apellido 'Smith'. Sin un índice, la base de datos tendría que pasar por todos los registros de la tabla: esto es lento, porque cuantos más registros tenga en su base de datos, más trabajo tendrá que hacer para encontrar el resultado. Por otro lado, un índice ayudará a la base de datos a saltar rápidamente a las páginas relevantes donde se encuentran los registros 'Smith'. Esto es muy similar a cómo nosotros, los humanos, revisamos un directorio de la guía telefónica para encontrar a alguien por el apellido: no comenzamos a buscar en el directorio de principio a fin, siempre y cuando insertemos la información en algún orden que podamos use para saltar rápidamente a las páginas 'S'.
Las claves primarias y las claves únicas son similares. Una clave principal es una columna, o una combinación de columnas, que puede identificar de forma exclusiva una fila. Es un caso especial de clave única . Una tabla puede tener como máximo una clave primaria, pero más de una clave única. Cuando especifica una clave única en una columna, no hay dos filas distintas en una tabla que puedan tener el mismo valor.
También tenga en cuenta que las columnas definidas como claves primarias o claves únicas se indexan automáticamente en MySQL.
passengers
con los siguientes campos: (id, first_name, last_name, age, passport_number)
normalmente configuraría la id
columna para que sea la clave principal. Una clave primaria es automáticamente una clave única. La principal diferencia es que solo puede tener una clave principal en la tabla y que la columna no puede contener NULL
valores. No es necesario configurar la id
columna para que sea así UNIQUE
porque al establecerla en una clave principal, se garantiza automáticamente que sea única ... Entonces también puede configurarla passport_number
para UNIQUE
que no haya más de un pasajero ...
NULL
en esa columna, sin problemas.
KEY e INDEX son sinónimos.
Debe agregar un índice cuando las mediciones de rendimiento y EXPLAIN le muestren que la consulta es ineficiente debido a que falta un índice. Agregar un índice puede mejorar el rendimiento de las consultas (pero puede ralentizar las modificaciones en la tabla).
Debe usar UNIQUE cuando desee contrainformar los valores en esa columna (o columnas) para que sean únicos, de modo que los intentos de insertar valores duplicados den como resultado un error.
Una CLAVE PRIMARIA es una restricción única y también implica que la columna NO ES NULA. Se utiliza para dar una identidad a cada fila. Esto puede ser útil para unirse con otra tabla mediante una restricción de clave externa. Si bien no es necesario que una mesa tenga una CLAVE PRIMARIA, generalmente es una buena idea.
La clave primaria no permite NULL
valores, pero la clave única permite NULL
valores.
Podemos declarar solo una clave primaria en una tabla, pero una tabla puede tener múltiples claves únicas (asignación de columna).
PRIMARY KEY
Y UNIQUE KEY
son similares, excepto que tiene diferentes funciones. La clave primaria hace que la fila de la tabla sea única (es decir, no puede haber 2 filas con exactamente la misma clave). Solo puede tener 1 clave principal en una tabla de base de datos.
La clave única hace que la columna de la tabla en una fila de la tabla sea única (es decir, ninguna fila de la tabla 2 puede tener el mismo valor exacto). Puede tener más de 1 columna de tabla de clave única (a diferencia de la clave principal, lo que significa que solo 1 columna de tabla en la tabla es única).
INDEX
También crea singularidad. MySQL (ejemplo) creará una tabla de indexación para la columna que está indexada. De esta manera, es más fácil recuperar el valor de la fila de la tabla cuando se consulta la consulta en esa columna de tabla indexada. La desventaja es que si realiza muchas actualizaciones / eliminaciones / creaciones, MySQL tiene que administrar las tablas de indexación (y eso puede ser un cuello de botella de rendimiento).
Espero que esto ayude.
UNIQUE KEY
puede ser NULL
pero PRIMARY KEY
no puede ser NULL
.
Claves únicas: las columnas en las que no hay dos filas similares
Clave primaria: Colección de un número mínimo de columnas que pueden identificar de manera única cada fila de una tabla (es decir, no hay dos filas similares en todas las columnas que constituyen la clave primaria). Puede haber más de una clave primaria en una tabla. Si existe una clave única, entonces es la clave primaria (no "la" clave primaria) en la tabla. Si no existe una clave única, se requerirán más de una columna de valores para identificar una fila como (first_name, last_name, father_name, mother_name) puede en algunas tablas constituir clave primaria.
Índice: se utiliza para optimizar las consultas. Si va a buscar u ordenar los resultados en función de alguna columna muchas veces (por ejemplo, la mayoría de las personas buscarán a los estudiantes por nombre y no por su número de lista), entonces se puede optimizar si los valores de la columna son todos " indexado "por ejemplo con un algoritmo de árbol binario.
Clave primaria : solo podemos poner una clave primaria en una tabla en una tabla y no podemos dejar esa columna en blanco cuando ingresamos los valores en la tabla.
Clave única : podemos poner más de una clave única en una tabla y podemos dejar esa columna en blanco cuando ingresamos los valores en la tabla. La columna toma valores únicos (no iguales) cuando aplicamos la clave primaria y única.
La clave primaria se usa para trabajar con diferentes tablas. Esta es la base de las bases de datos relacionales. Si tiene una base de datos de libros, es mejor crear 2 tablas: 1) libros y 2) autores con la clave primaria INT "id". Luego usas id en los libros en lugar del nombre del autor.
La clave única se usa si no desea tener entradas repetidas. Por ejemplo, es posible que tenga un título en la tabla de su libro y quiera asegurarse de que solo haya una entrada para cada título.
Llave unica :
Clave primaria