Los índices son un grupo de datos vinculado a una o varias columnas que almacena una relación entre el contenido y la fila en la que se encuentra. Con esto se agilizan las búsquedas en una tabla al evitar que MySQL tenga que recorrer toda la tabla para obtener los datos solicitados.
Por tanto la creación de índices es de vital importancia para acelerar las consultas a base de datos, sobre todo cuando las tablas presentan un tamaño considerable. Pero los índices no son el remedio a todos los males, puesto que estos cambian cada vez que la columna asociada se modifica, no se deberían crear indices sobre columnas en las que son frecuentes las operaciones de escritura. También habrá que tener en cuenta que los índices ocupan espacio, en algunos caso más que la tabla a la que hacen referencia.
En MySQL hay cinco tipos de índices:
- PRIMARY KEY: Este índice se ha creado para generar consultas especialmente rápidas, debe ser único y no se admite el almacenamiento de NULL.
- KEY o INDEX: Son usados indistintamente por MySQL, permite crear indices sobre una columna, sobre varias columnas o sobre partes de una columna.
- UNIQUE: Este tipo de índice no permite el almacenamiento de valores iguales.
- FULLTEXT: Permiten realizar búsquedas de palabras. Sólo pueden usarse sobre columnas CHAR, VARCHAR o TEXT
- SPATIAL: Este tipo de índices solo puede usarse sobre columnas de datos geométricos (spatial) y en el motor MyISAM
Te agradezco esta información. Está bien y es útil, no obstante también está muy incompleta. No me quedaron estrictamente claras las definiciones de los tipos KEY o INDEX ni la del tipo FULLTEXT. El artículo quedaría aún mejor si tuviese ejemplos o algo por el estilo.
Ojalá consideres mi comentario.
Saludos cordiales.
No me ha aclarado nada, explicas los cinco tipos de índices tan por encima, que tendré que seguir buscando.
Para escribir un artículo de tan mala gana, quizás mejor que no los escribas.
gracias por la explicacion,
hace unos dias me jodieron con esta pregunta: cuales son los dos archivos que se crean al crear una tabla?, tu sabes cual es la respuesta?
gracias me sirvio para la tarea de resendiz xD