Pregunta

¿Es una restricción única un índice por defecto? Si no es así, ¿una restricción única tiene los mismos resultados de rendimiento que una columna indexada cuando se usa en la cláusula SELECT ... WHERE ?

Gracias

¿Fue útil?

Solución

Una restricción única es necesariamente un índice. Normalmente lo define como "ÍNDICE ÚNICO". En cualquier caso, se requeriría un índice para implementar eficientemente una restricción única, por lo que tener una no es una desventaja.

Otros consejos

Una restricción es en realidad muy diferente de un índice: solo dice que se supone que MySQL impone la unicidad para usted. Sin embargo, un índice (aunque puede ser único) trata sobre el orden físico en su disco duro, o sobre estructuras adicionales (generalmente un árbol) que permiten una búsqueda eficiente en la columna.

Sin embargo, puede estar confundiendo todo esto con las claves principales que definen un índice único (generalmente agrupado).

Una restricción única es una forma de expresar el hecho de que algo (como una combinación de valores de atributo) debe ser único dentro del alcance de una relación completa (" tabla ")).

Eso está al nivel del diseño LÓGICO.

Un índice es un medio posiblemente útil para ayudar a hacer cumplir tal restricción.

Eso está al nivel del diseño FÍSICO.

Algunos productos DBMS pueden inferir ciertas construcciones de diseño físico, como la presencia de algún índice, a partir de la presencia de ciertas construcciones de diseño lógico, como una restricción ÚNICA. Otros podrían no.

ÚNICO es en realidad una restricción en un índice, así que sí, ÚNICO implica que hay un índice en el campo en el que está aplicando la unicidad.

Consulte la restricción de clave principal antes de comenzar a usar restricciones únicas.

Una restricción de clave primaria equivale a declarar una restricción única y una restricción no nula. Si hay más de una columna en la clave primaria, cada columna obtiene una restricción no nula, pero la restricción única se aplica a todas las columnas juntas.

Cuando declara una clave primaria, el DBMS creará un índice para usted. Si lo desea, puede soltar el índice, pero obtendrá un rendimiento horrible cuando el DBMS realice escaneos de tabla para verificar la unicidad.

Las restricciones de clave principal imponen la integridad de la entidad, mientras que las restricciones de REFERENCIAS (clave externa) imponen la integridad referencial. Juntos, contribuyen en gran medida a garantizar la integridad de los datos.

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