2012-02-22 12 views
22

Tengo un único campo en mi tabla, y necesito buscarlo rápidamente. ¿Necesito indexarlo?Mysql: campo único necesita ser índice?

¿Las búsquedas sobre campos únicos y campos indexados varían en velocidad o uso de recursos?

+0

leer: http://explainextended.com/2009/04/23/making-an-index-unique/ – diEcho

Respuesta

36

No, no tiene que volver a indexarlo. Cuando especifica UNIQUE KEY, la columna está indexada. Por lo tanto, no tiene ninguna diferencia en el rendimiento con otra columna indexada (por ejemplo, PRIMARY KEY) de mismo tipo.

Sin embargo, si el tipo es diferente, habrá poca diferencia de rendimiento.

+1

ok many tks: D. ¿Qué diferencia hay entre el rendimiento entre la clave única y la indexada durante la búsqueda? – TomSawyer

+1

@Tom No hay diferencia si ambos están indexados. Lee mi respuesta nuevamente –

5

Cada campo UNIQUE es, por definición, indexado con un UNIQUE INDEX - esto también pasa a ser la ruta de acceso de búsqueda más rápida.

5

Si el campo debe ser ÚNICO, debe ser PRIMARY KEY o UNIQUE INDEX.

En cuanto al rendimiento entre UNIQUE INDEX y INDEX, no hay diferencia al seleccionar, ya que ambos usarán el mismo algoritmo, es decir, hash o b-tree. Es sólo que con un índice de UNIQUE, especialmente un ejemplo numérico INT uno, será más rápido que un índice que contiene duplicados como los algoritmos, tales como b-árbol son capaces de obtener de manera más eficiente a la fila (s) solicitado

Cuestiones relacionadas