¿Qué es un índice en SQL?
¿Qué es un índice en SQL? ¿Puedes explicarlo o hacer una referencia para entenderlo claramente?
¿Dónde debo utilizar un índice?
403
3
¿Qué es un índice en SQL? ¿Puedes explicarlo o hacer una referencia para entenderlo claramente?
¿Dónde debo utilizar un índice?
Un índice se utiliza para acelerar la búsqueda en la base de datos. MySQL tiene una buena documentación sobre el tema (que también es relevante para otros servidores SQL): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
Un índice puede ser utilizado para encontrar eficientemente todas las filas que coincidan con alguna columna en su consulta y luego recorrer sólo ese subconjunto de la tabla para encontrar coincidencias exactas. Si no tiene índices en ninguna columna de la cláusula
WHERE
, el servidorSQL
tiene que recorrer toda la tabla y comprobar cada fila para ver si coincide, lo que puede ser una operación lenta en tablas grandes.El índice también puede ser un índice
UNIQUE
, lo que significa que no puede tener valores duplicados en esa columna, o unaPRIMARY KEY
que en algunos motores de almacenamiento define en qué lugar del archivo de la base de datos se almacena el valor.En MySQL puedes utilizar
EXPLAIN
delante de tu sentenciaSELECT
para ver si tu consulta hace uso de algún índice. Esto es un buen comienzo para solucionar problemas de rendimiento. Lea más aquí: http://dev.mysql.com/doc/refman/5.0/en/explain.htmlUn índice se utiliza para acelerar el rendimiento de las consultas. Lo hace reduciendo el número de páginas de datos de la base de datos que tienen que ser visitadas/exploradas.
En SQL Server, un índice agrupado determina el orden físico de los datos en una tabla. Sólo puede haber un índice agrupado por tabla (el índice agrupado ES la tabla). Todos los demás índices de una tabla se denominan no agrupados.
Fundamentos de los índices de SQL Server
Índices de SQL Server: lo básico]2
Índices de SQL Server
Fundamentos de los índices
Índice (wiki)][5]
[5]: http://en.wikipedia.org/wiki/Index_(base de datos)
Un [índice][1] se utiliza por varias razones. La razón principal es acelerar las consultas para poder obtener filas u ordenarlas más rápidamente. Otra razón es definir una clave primaria o un índice único que garantice que ninguna otra columna tenga los mismos valores.
[1]: http://en.wikipedia.org/wiki/Index_(base de datos)