Aunque entiendo que es muy conveniente tener un índice en una columna única: para verificar de forma fácil y eficiente la colisión de valores, creo que corresponde al programador especificar si una columna de campo única debe tener un índice o no, con respecto a la optimización del tamaño frente a la velocidad.MySQL: ¿Un campo de columna 'único' implica un índice, y si es así, por qué?
Por lo que yo sé, MySQL indexa automáticamente una columna de tabla que se especifica como única. ¿Es tan?
¿Hay alguna razón por la cual MySQL aparentemente no puede tener columnas únicas SIN índices? Sí, cada inserción/actualización de valor será O (number_of_rows) operación sin una, pero como he dicho, ¿no debería el programador ser gravado con la decisión?
¡Solo curiosidad!
De hecho, una de las razones para usar un DBMS es mantener la integridad de los datos. –
La integridad de datos y la indexación de datos, aunque relacionados, son dos conceptos ortogonales, ¿no? – amn
@amn, sí, creo que lo son. Y la mayoría de las veces, la solución a la integridad de los datos no es tan elegante como este caso particular. Muchas veces se trata de tener que verificar físicamente que la información que se supone que está allí está realmente allí. Por supuesto, esto también depende del RDMS, soporte para claves externas, restricciones clave, etc. –